为什么Hashset不接受重复值?

时间:2010-12-11 05:39:07

标签: java

我对hashset有疑问。为什么Hashset不采用重复元素?我知道它实现了Set接口并将值放在哈希表中。我的意思是内部编写的代码可能是因为没有采用重复值?

4 个答案:

答案 0 :(得分:7)

正是您提到的原因,HashSet实现了Set接口:

设置

  

包含否的集合   重复元素。更正式的,   集合不包含元素对e1   和e2使得e1.equals(e2)和at   大多数一个null元素。正如所暗示的那样   它的名字,这个界面模型   数学集抽象。

你想要重复吗?使用List

答案 1 :(得分:1)

以下是有关它的一些信息

Collision Resolution

And here is the source

答案 2 :(得分:0)

因为根据定义,集合是不包含重复项的集合。

答案 3 :(得分:-2)

HashSet不允许重复值,为什么因为HashSet Class包含add()方法,所以在HashSet中添加元素之前会检查。如果我们尝试添加重复值,则返回false,因此不允许。

此处存在,两者都是相等的返回false。Object PRESENT; public boolean add(E e) { return map.put(e, PRESENT)==null; }