Learning Outcomes
At the end of this lecture, you’ll be able to:
- Identify the steps of hashing (convert to hash code and compression).
- Enumerate the properties of a good hash function.
- Describe the job of Java’s
hashCode
method. - Define what a hash table is.
- Explain what collision (in the context of hashing) is and when it happens.
- Describe Open Addressing with Linear Probing as a collision resolution.
- Understand and apply the tombstone mechanism when removing an entry from a Hash Table with open addressing schemes.
Lecture Plan
In this lecture, we'll cover the following lessons:
- Hash Table: Motivation
- Hash Table: The Big Picture
- Hash Table: Hash Function
- Hash Function: Java's hashCode()
- Hash Table: The Challenge
- Hash Table: Collisions
- Collision Resolution: Open Addressing
- Open Addressing: Linear Probing
- Linear Probing: Exercise I⚡
- Linear Probing: Exercise II⚡
- Linear Probing: Lazy Deletion
Lessons marked with ⚡ contain exercise/activity.