,同时通过凯西塞拉利昂的书要我碰到这个代码片段跌跌撞撞:散列函数和密钥
m.put("k1", new Dog("aiko")); // add some key/value pairs
m.put("k2", Pets.DOG);
m.put(Pets.CAT, "CAT key");
Dog d1 = new Dog("clover");
m.put(d1, "Dog key");
m.put(new Cat(), "Cat key");
地图是用来储存东西在键和值格式。当我们输入“k1”或新的Cat()作为关键字时,有人会告诉我实际存储在密钥中的内容吗?是否存储对这些对象的引用或散列码的值?我完全同意这一点。请指教。
如果您能指引我阅读更多的阅读材料,我们将不胜感激。
这显然是错误的。平等仅限于等同。 hashCode用于减少潜在的相等候选数。两个相等的对象必须具有相同的hashCode。 – 2012-04-17 15:46:49
这是正确的,但你的回答说equals首先被调用,然后如果equals返回true,则使用hashCode。这完全不正确。阅读我的答案,了解它是如何工作的。 – 2012-04-17 18:08:58
那么,是不是它先hashCode()然后equals()?纠正我,如果我错了。非常感谢您更新我的知识。 – TechSpellBound 2012-04-17 18:26:18