/** * Returns the given iterable's last 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 last element in the {@code iterable}. * @throws NoSuchElementException if no element found. */ public static <T> T last( Iterable<T> iterable ) { return Iterators.last( iterable.iterator() ); }
@Test void testLastElement() { Object object = new Object(); Object object2 = new Object(); // last Iterable assertEquals( object2, Iterables.last( asList( object, object2 ) ) ); assertEquals( object, Iterables.last( asList( object ) ) ); assertThrows( NoSuchElementException.class, () -> Iterables.last( asList() ) ); // last Iterator assertEquals( object2, Iterators.last( asList( object, object2 ).iterator() ) ); assertEquals( object, Iterators.last( asList( object ).iterator() ) ); assertThrows( NoSuchElementException.class, () -> Iterators.last( asList().iterator() ) ); // lastOrNull Iterable assertEquals( object2, Iterables.lastOrNull( asList( object, object2 ) ) ); assertEquals( object, Iterables.lastOrNull( asList( object ) ) ); assertNull( Iterables.lastOrNull( asList() ) ); // lastOrNull Iterator assertEquals( object2, Iterators.lastOrNull( asList( object, object2 ).iterator() ) ); assertEquals( object, Iterators.lastOrNull( asList( object ).iterator() ) ); assertNull( Iterators.lastOrNull( asList().iterator() ) ); }
@Test public void shouldListMetaDataStoreLast() throws Exception { StoreFileMetadata fileMetadata = Iterators.last( neoStoreDataSource.listStoreFiles( false ) ); assertEquals( fileMetadata.file(), neoStoreDataSource.getDatabaseLayout().metadataStore() ); }
@Test public void shouldListMetaDataStoreLastWithTxLogs() throws Exception { StoreFileMetadata fileMetadata = Iterators.last( neoStoreDataSource.listStoreFiles( true ) ); assertEquals( fileMetadata.file(), neoStoreDataSource.getDatabaseLayout().metadataStore() ); }
/** * Returns the given iterable's last 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 last element in the {@code iterable}. * @throws NoSuchElementException if no element found. */ public static <T> T last( Iterable<T> iterable ) { return Iterators.last( iterable.iterator() ); }