Add collections module: HashMap bucket layout, treeification, and a real ConcurrentModificationException reproduction
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
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user