相关疑难解决方法(0)

617
推荐指数
11
解决办法
57万
查看次数

Java HashMap如何使用相同的哈希代码处理不同的对象?

根据我的理解,我认为:

  1. 两个对象具有相同的哈希码是完全合法的.
  2. 如果两个对象相等(使用equals()方法),则它们具有相同的哈希码.
  3. 如果两个对象不相等,则它们不能具有相同的哈希码

我对么?

现在,如果我是正确的,我有以下问题:HashMap内部使用对象的哈希码.因此,如果两个对象可以具有相同的哈希码,那么它如何HashMap使用它所使用的键?

有人可以解释HashMap内部如何使用对象的哈希码吗?

java hash-function hashmap hashcode

205
推荐指数
9
解决办法
20万
查看次数

HashSet如何不允许重复?

我正在经历的add方法HashSet.有人提到

如果此set已包含该元素,则调用将保持set不变并返回false.

但是该add方法在内部保存了值HashMap

public boolean add(E e) {
    return map.put(e, PRESENT)==null;
}
Run Code Online (Sandbox Code Playgroud)

陈述的put方法HashMap

将指定的值与此映射中的指定键相关联.如果映射先前包含键的映射,则替换旧值.

因此,如果该put方法HashMap取代了旧的值,该怎么办HashSet add法叶集重复的元素的情况下保持不变?

java hashmap hashset

32
推荐指数
3
解决办法
2万
查看次数

标签 统计

java ×3

hashcode ×2

hashmap ×2

equals ×1

hash-function ×1

hashset ×1

overriding ×1