@Test public void testComputeIfAbsent() { ConcurrentLongHashMap<Integer> map = new ConcurrentLongHashMap<>(16, 1); AtomicInteger counter = new AtomicInteger(); LongFunction<Integer> provider = key -> counter.getAndIncrement(); assertEquals(map.computeIfAbsent(0, provider).intValue(), 0); assertEquals(map.get(0).intValue(), 0); assertEquals(map.computeIfAbsent(1, provider).intValue(), 1); assertEquals(map.get(1).intValue(), 1); assertEquals(map.computeIfAbsent(1, provider).intValue(), 1); assertEquals(map.get(1).intValue(), 1); assertEquals(map.computeIfAbsent(2, provider).intValue(), 2); assertEquals(map.get(2).intValue(), 2); }