public static <T> PrimitiveLongObjectMap<T> copy( PrimitiveLongObjectMap<T> original ) { PrimitiveLongObjectMap<T> copy = Primitive.longObjectMap( original.size() ); original.visitEntries( ( key, value ) -> { copy.put( key, value ); return false; } ); return copy; }
@Test void longObjectEntryVisitorShouldNotSeeEntriesAfterRequestingBreakOut() { // GIVEN PrimitiveLongObjectMap<Integer> map = Primitive.longObjectMap(); map.put( 1, 100 ); map.put( 2, 200 ); map.put( 3, 300 ); map.put( 4, 400 ); final AtomicInteger counter = new AtomicInteger(); // WHEN map.visitEntries( ( key, value ) -> counter.incrementAndGet() > 2 ); // THEN assertThat( counter.get(), is( 3 ) ); }
@SuppressWarnings( "unchecked" ) @Test void longObjectEntryVisitorShouldSeeAllEntriesIfItDoesNotBreakOut() { // GIVEN PrimitiveLongObjectMap<Integer> map = Primitive.longObjectMap(); map.put( 1, 100 ); map.put( 2, 200 ); map.put( 3, 300 ); PrimitiveLongObjectVisitor<Integer, RuntimeException> visitor = mock( PrimitiveLongObjectVisitor.class ); // WHEN map.visitEntries( visitor ); // THEN verify( visitor ).visited( 1, 100 ); verify( visitor ).visited( 2, 200 ); verify( visitor ).visited( 3, 300 ); verifyNoMoreInteractions( visitor ); }
map.visitEntries( ( key, value ) ->
public static <T> PrimitiveLongObjectMap<T> copy( PrimitiveLongObjectMap<T> original ) { PrimitiveLongObjectMap<T> copy = Primitive.longObjectMap( original.size() ); original.visitEntries( ( key, value ) -> { copy.put( key, value ); return false; } ); return copy; }
public static <T> PrimitiveLongObjectMap<T> copy( PrimitiveLongObjectMap<T> original ) { PrimitiveLongObjectMap<T> copy = Primitive.longObjectMap( original.size() ); original.visitEntries( ( key, value ) -> { copy.put( key, value ); return false; } ); return copy; }