@Test
    public void entriesIteratorRemoveKeyAfterValChange() {
        installValue(map, key, v1);
        Iterator<Map.Entry<Long, String>> iterator = map.entrySet().iterator();
        assertTrue(iterator.hasNext());
        Map.Entry<Long, String> entry = iterator.next();
        assertEquals(key, entry.getKey());
        // change the value for the key
        map.put(key, v2);

        iterator.remove();
        // This is weird, since the entry has in fact changed, so should not be removed, but JDK implementations
        // all remove based on the key.
        postRemoveAsserts(map, key);
        assertFalse(map.containsValue(v1));
        assertFalse(map.containsValue(v2));
    }
This test demonstrates a retention issue in the NBHM implementation which keeps old keys around until a resize
event.
See https://github.com/JCTools/JCTools/issues/354
jctools-core/src/test/java/org/jctools/maps/NBHMRemoveTest.java