Companion code for the ankurm.com post "Top 40 Java Collections Interview Questions (HashMap Internals to Fail-Fast Iterators)". Verified against JDK 25's own HashMap source (TREEIFY_THRESHOLD=8, UNTREEIFY_THRESHOLD=6, MIN_TREEIFY_CAPACITY=64), with every claim backed by a committed docs/output/*.txt transcript from a real run. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01YXCrLgRKFgCh9RHKW8xaqJ
14 lines
909 B
Plaintext
14 lines
909 B
Plaintext
Classic ConcurrentModificationException: for-each + Collection.remove() mid-loop
|
|
================================================================================
|
|
|
|
list before: [1, 2, 3, 4, 5]
|
|
threw: java.util.ConcurrentModificationException
|
|
|
|
stack trace (trimmed to the ArrayList$Itr frames that matter):
|
|
java.util.ConcurrentModificationException
|
|
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1096)
|
|
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:1050)
|
|
at com.ankurm.interviewlab.collections.ConcurrentModificationTest.lambda$classicForEachPlusCollectionRemoveThrows$0(ConcurrentModificationTest.java:28)
|
|
at com.ankurm.interviewlab.collections.ConcurrentModificationTest.classicForEachPlusCollectionRemoveThrows(ConcurrentModificationTest.java:27)
|
|
at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
|
|
at java.base/java.util.ArrayList.forEach(ArrayList.java:1604) |