/** * Returns the given iterable's first element. If no element is found a * {@link NoSuchElementException} is thrown. * * @param <T> the type of elements in {@code iterable}. * @param iterable the {@link Iterable} to get elements from. * @return the first element in the {@code iterable}. * @throws NoSuchElementException if no element found. */ public static <T> T first( Iterable<T> iterable ) { return Iterators.first( iterable.iterator() ); }
@Test void testFirstElement() { Object object = new Object(); Object object2 = new Object(); // first Iterable assertEquals( object, Iterables.first( asList( object, object2 ) ) ); assertEquals( object, Iterables.first( asList( object ) ) ); assertThrows( NoSuchElementException.class, () -> Iterables.first( asList() ) ); // first Iterator assertEquals( object, Iterators.first( asList( object, object2 ).iterator() ) ); assertEquals( object, Iterators.first( asList( object ).iterator() ) ); assertThrows( NoSuchElementException.class, () -> Iterators.first( asList().iterator() ) ); // firstOrNull Iterable assertEquals( object, Iterables.firstOrNull( asList( object, object2 ) ) ); assertEquals( object, Iterables.firstOrNull( asList( object ) ) ); assertNull( Iterables.firstOrNull( asList() ) ); // firstOrNull Iterator assertEquals( object, Iterators.firstOrNull( asList( object, object2 ).iterator() ) ); assertEquals( object, Iterators.firstOrNull( asList( object ).iterator() ) ); assertNull( Iterators.firstOrNull( asList().iterator() ) ); }
private Path getFirstPath( Traverser traverse ) { try ( ResourceIterator<Path> iterator = traverse.iterator() ) { return Iterators.first( iterator ); } }
/** * Returns the given iterable's first element. If no element is found a * {@link NoSuchElementException} is thrown. * * @param <T> the type of elements in {@code iterable}. * @param iterable the {@link Iterable} to get elements from. * @return the first element in the {@code iterable}. * @throws NoSuchElementException if no element found. */ public static <T> T first( Iterable<T> iterable ) { return Iterators.first( iterable.iterator() ); }