我对hashset有疑问。为什么Hashset不采用重复元素?我知道它实现了Set接口并将值放在哈希表中。我的意思是内部编写的代码可能是因为没有采用重复值?
答案 0 :(得分:7)
正是您提到的原因,HashSet
实现了Set
接口:
设置强>
包含否的集合 重复元素。更正式的, 集合不包含元素对e1 和e2使得e1.equals(e2)和at 大多数一个null元素。正如所暗示的那样 它的名字,这个界面模型 数学集抽象。
你想要重复吗?使用List
。
答案 1 :(得分:1)
答案 2 :(得分:0)
因为根据定义,集合是不包含重复项的集合。
答案 3 :(得分:-2)
HashSet不允许重复值,为什么因为HashSet Class包含add()方法,所以在HashSet中添加元素之前会检查。如果我们尝试添加重复值,则返回false,因此不允许。
此处存在,两者都是相等的返回false。Object PRESENT;
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}