/** * Atomically remove {@code key} from the map iff its associated value is 0. * * @since 20.0 */ @Beta @CanIgnoreReturnValue public boolean removeIfZero(K key) { return remove(key, 0); }
/** * Atomically remove {@code key} from the map iff its associated value is 0. * * @since 20.0 */ @Beta @CanIgnoreReturnValue public boolean removeIfZero(K key) { return remove(key, 0); }
public void testRemoveValue() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0, map.size()); assertTrue(map.isEmpty()); assertFalse(map.remove(key, 0L)); long newValue = random.nextInt(MAX_ADDEND); for (int i = 0; i < ITERATIONS; i++) { map.put(key, newValue); assertTrue(map.containsKey(key)); long before = map.get(key); assertFalse(map.remove(key, newValue + 1)); assertFalse(map.remove(key, newValue - 1)); assertTrue(map.remove(key, newValue)); long after = map.get(key); assertFalse(map.containsKey(key)); assertEquals(0L, after); newValue += newValue; } assertEquals(0, map.size()); assertTrue(map.isEmpty()); }
public void testRemove() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0, map.size()); assertTrue(map.isEmpty()); assertEquals(0L, map.remove(key)); long newValue = random.nextInt(MAX_ADDEND); for (int i = 0; i < ITERATIONS; i++) { map.put(key, newValue); assertTrue(map.containsKey(key)); long before = map.get(key); long result = map.remove(key); long after = map.get(key); assertFalse(map.containsKey(key)); assertEquals(before, result); assertEquals(0L, after); newValue += newValue; } assertEquals(0, map.size()); assertTrue(map.isEmpty()); }
public void testRemove_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.remove(key)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.put(key, 0L)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(0L, map.remove(key)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); }
public void testRemoveValue_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertFalse(map.remove(key, 0L)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.put(key, 0L)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertTrue(map.remove(key, 0L)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); }
public void testPutIfAbsent() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; long newValue = random.nextInt(MAX_ADDEND); for (int i = 0; i < ITERATIONS; i++) { long before = map.get(key); long result = map.putIfAbsent(key, newValue); long after = map.get(key); assertEquals(before, result); assertEquals(before == 0 ? newValue : before, after); map.remove(key); before = map.get(key); result = map.putIfAbsent(key, newValue); after = map.get(key); assertEquals(0, before); assertEquals(before, result); assertEquals(newValue, after); map.put(key, 0L); before = map.get(key); result = map.putIfAbsent(key, newValue); after = map.get(key); assertEquals(0, before); assertEquals(before, result); assertEquals(newValue, after); newValue += newValue; } assertEquals(1, map.size()); assertTrue(!map.isEmpty()); assertTrue(map.containsKey(key)); }
/** * Atomically remove {@code key} from the map iff its associated value is 0. * * @since 20.0 */ @Beta @CanIgnoreReturnValue public boolean removeIfZero(K key) { return remove(key, 0); }
/** * Atomically remove {@code key} from the map iff its associated value is 0. * * @since 20.0 */ @Beta @CanIgnoreReturnValue public boolean removeIfZero(K key) { return remove(key, 0); }
public void testRemoveValue() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0, map.size()); assertTrue(map.isEmpty()); assertFalse(map.remove(key, 0L)); long newValue = random.nextInt(MAX_ADDEND); for (int i = 0; i < ITERATIONS; i++) { map.put(key, newValue); assertTrue(map.containsKey(key)); long before = map.get(key); assertFalse(map.remove(key, newValue + 1)); assertFalse(map.remove(key, newValue - 1)); assertTrue(map.remove(key, newValue)); long after = map.get(key); assertFalse(map.containsKey(key)); assertEquals(0L, after); newValue += newValue; } assertEquals(0, map.size()); assertTrue(map.isEmpty()); }
public void testRemove() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0, map.size()); assertTrue(map.isEmpty()); assertEquals(0L, map.remove(key)); long newValue = random.nextInt(MAX_ADDEND); for (int i = 0; i < ITERATIONS; i++) { map.put(key, newValue); assertTrue(map.containsKey(key)); long before = map.get(key); long result = map.remove(key); long after = map.get(key); assertFalse(map.containsKey(key)); assertEquals(before, result); assertEquals(0L, after); newValue += newValue; } assertEquals(0, map.size()); assertTrue(map.isEmpty()); }
public void testRemoveValue_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertFalse(map.remove(key, 0L)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.put(key, 0L)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertTrue(map.remove(key, 0L)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); }
public void testRemove_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.remove(key)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.put(key, 0L)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(0L, map.remove(key)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); }
public void testPutIfAbsent() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; long newValue = random.nextInt(MAX_ADDEND); for (int i = 0; i < ITERATIONS; i++) { long before = map.get(key); long result = map.putIfAbsent(key, newValue); long after = map.get(key); assertEquals(before, result); assertEquals(before == 0 ? newValue : before, after); map.remove(key); before = map.get(key); result = map.putIfAbsent(key, newValue); after = map.get(key); assertEquals(0, before); assertEquals(before, result); assertEquals(newValue, after); map.put(key, 0L); before = map.get(key); result = map.putIfAbsent(key, newValue); after = map.get(key); assertEquals(0, before); assertEquals(before, result); assertEquals(newValue, after); newValue += newValue; } assertEquals(1, map.size()); assertTrue(!map.isEmpty()); assertTrue(map.containsKey(key)); }