sam*_*ara 0 java hashmap hashset
在java中,HashSet是使用HashMap实现的.因此,当我们向集合添加项目时,将执行以下代码.
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
Run Code Online (Sandbox Code Playgroud)
当两个不同但具有相同散列的对象被添加到HashSet时会发生什么; 它(HashSet)是否包含对象或者会发生什么?
hashmap使用.equals()以及.hash().除非.equals()返回true,否则两件事情不一样.hashset也是如此.
因此,如果两个对象是不同的但具有相同的哈希值,它们将被存储,并且两者都可用,因为它们.equals()仍将返回false.
这是真的,在内部,哈希来决定存储的对象,但具有相同的散列多个对象仍然可以存储(有轻微的性能损失,因为它变得更为复杂,但仅此而已).
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |