ConcurrentHashMap's iterator is weakly consistent: it never throws CME ====================================================================== map before: {0=v0, 1=v1, 2=v2, 3=v3, 4=v4} entries visited during iteration (original 5, plus possibly some newly-added ones): 19 map after: 24 entries total ConcurrentModificationException thrown: false (weakly consistent: may or may not reflect the mutation, but is guaranteed never to throw)