Tag: 语言实现

java.util.HashMap和HashSet的内部实现

我一直在尝试理解java.util.HashMap和java.util.HashSet的内部实现。 以下是我脑海中浮现的疑惑: 什么是HashMap / HashSet中@Override public int hashcode()的重要性? 这个哈希码在内部使用在哪里? 我一般看到HashMap的键是一个像myMap这样的myMap 。 我可以将值映射到someObject (而不是String),如myMap吗? 我需要遵守的所有合同成功实现了什么? 提前致谢 ! 编辑: 我们是说密钥的哈希码(check!)是在哈希表中映射值的实际内容吗? 当我们做myMap.get(someKey); java在内部调用someKey.hashCode()来获取哈希表中要查找结果值的数字? 答:是的。 编辑2: 在java.util.HashSet ,从哪里为Hash表生成密钥? 它来自我们正在添加的对象,例如。 mySet.add(myObject); 那么myObject.hashCode()将决定它在哈希表中的位置? (因为我们不在HashSet中给出键)。 答:添加的对象成为关键。 价值是假的!