Learning paths

HashMap internals, part by part

Thirteen short lessons with an interactive lab: hashing, buckets, put and get, collisions, load factor, capacity, resizing, equals and hashCode, treeification, Java 7 vs 8 and mutable keys.

  • For: You use HashMap every day and want to know exactly what happens inside (a favourite interview topic).
  • By the end: You can explain HashMap internals step by step, and avoid the bugs that come from misusing it.
  • Size: 14 lessons (42 min of reading, plus time to try the code), intermediate
  1. HashMap internals 1: What is hashing?HashMap internals, intermediate, 3 min
  2. HashMap internals 2: What is a bucket?HashMap internals, intermediate, 3 min
  3. HashMap internals 3: How put() worksHashMap internals, intermediate, 3 min
  4. HashMap internals 4: How get() worksHashMap internals, intermediate, 3 min
  5. HashMap internals 5: CollisionsHashMap internals, intermediate, 3 min
  6. HashMap internals 6: How collisions are resolvedHashMap internals, intermediate, 3 min
  7. HashMap internals 7: Load factorHashMap internals, intermediate, 3 min
  8. HashMap internals 8: Initial capacityHashMap internals, intermediate, 3 min
  9. HashMap internals 9: Resize and rehashHashMap internals, advanced, 3 min
  10. HashMap internals 10: equals() and hashCode()HashMap internals, intermediate, 3 min
  11. HashMap internals 11: Treeification (Java 8+)HashMap internals, advanced, 3 min
  12. HashMap internals 12: Java 7 vs Java 8+HashMap internals, advanced, 3 min
  13. HashMap internals 13: Why mutable keys are dangerousHashMap internals, intermediate, 3 min

Other paths