java.version=17.0.12 vm=Java HotSpot(TM) 64-Bit Server VM == 1. ArrayList growth == new ArrayList<>() capacity=0 size=0 after add #1 capacity=10 size=1 after add #10 capacity=10 size=10 after add #11 capacity=15 size=11 after add #16 capacity=22 size=16 after add #23 capacity=33 size=23 == 2. LinkedList structure == first=Node last=Node Node fields=item,next,prev == 3. HashMap lazy allocation and resize == new HashMap<>() capacity=0 threshold=0 size=0 after put 1 capacity=16 threshold=12 size=1 after put 12 capacity=16 threshold=12 size=12 after put 13 capacity=32 threshold=24 size=13 new HashMap<>(1000) capacity=0 threshold=1024 size=0 after first put capacity=1024 threshold=768 size=1 == 4. Treeification also needs capacity >= 64 == after 1 colliding puts size=1 capacity=16 bucket[1]=Node after 2 colliding puts size=2 capacity=16 bucket[1]=Node after 3 colliding puts size=3 capacity=16 bucket[1]=Node after 4 colliding puts size=4 capacity=16 bucket[1]=Node after 5 colliding puts size=5 capacity=16 bucket[1]=Node after 6 colliding puts size=6 capacity=16 bucket[1]=Node after 7 colliding puts size=7 capacity=16 bucket[1]=Node after 8 colliding puts size=8 capacity=16 bucket[1]=Node after 9 colliding puts size=9 capacity=32 bucket[1]=Node after 10 colliding puts size=10 capacity=64 bucket[1]=Node after 11 colliding puts size=11 capacity=64 bucket[1]=TreeNode == 5. HashMap treeification with colliding hashes == after 8 colliding puts size=8 capacity=64 bucket[1]=Node after 9 colliding puts size=9 capacity=64 bucket[1]=TreeNode after remove K9 size=8 capacity=64 bucket[1]=TreeNode after remove K8 size=7 capacity=64 bucket[1]=TreeNode after remove K7 size=6 capacity=64 bucket[1]=TreeNode after remove K6 size=5 capacity=64 bucket[1]=Node after remove K5 size=4 capacity=64 bucket[1]=Node after remove K4 size=3 capacity=64 bucket[1]=Node after remove K3 size=2 capacity=64 bucket[1]=Node after remove K2 size=1 capacity=64 bucket[1]=Node == 6. Mutating a key after insertion == inserted id=1: get=value containsKey=true size=1 bucket=1 after id 1 -> 2: get(same ref)=null containsKey=false size=1 entrySet still contains key=[MutableKey(id=2)] remove(same ref)=null size=1 PASS legacy capacity/treeification/deletion/mutable-key assertions (deletion shape not fixed) PASS map absent/null/duplicate/default/compute/merge-delete/null-rejection/recovery PASS selection deque FIFO/LIFO/null; priority poll; sorted tie-break; set ordering; Enum order; identity map; comparator overflow repaired PASS views fixed-size/write-through/snapshot/null; subList valid edit; map backed views; CME + iterator repair + removeIf; COW snapshot; CHM weak traversal (no global snapshot claim) PASS actual resize split capacity=128 low=5:Node high=4:Node all mappings retained PASS actual resize split capacity=128 low=6:Node high=7:TreeNode all mappings retained