The tricky thing is how to decide the key for a hashmap. Especially when you
intend to use self-defined objects as key.
The simple rule is you have to overwrite hashcode() and equals() method.
Rule 1: x.equals(y) return true if x indeed is equal to y by your own
logic;
Rule 2: if x.equals(y) then x.hashcode() == y.hashcode().
Ideally any two different objects have distinct hashcodes. But that‘t not
possible since hashcode is used to generate real array index. Collisison has to
happen. Thus in practice it‘s possible for two different objects to have same
hashcode. Then equals() is used to tell one from the other.
时间: 2024-10-05 06:34:54