为什么不允许重复项是HashSet的属性?

时间:2020-02-25 04:07:23

标签: java hashset

HashSet的一项众所周知的功能是它不允许重复。例如:

HashSet<Integer> h = new HashSet<>();
h.add(5);
h.add(5); // this time it won't allow it, because its a duplicate.

但是,为什么会这样呢?拥有在最佳情况O(1)中添加并在最佳情况O(1)中进行搜索的数据结构似乎很有用,并且如果我有重复项,它将仍然有用。 Java实现HashSet的方式是否不允许它具有重复项,还是由于某种原因而只是选择?

1 个答案:

答案 0 :(得分:2)

因为它是Set的众所周知的属性,所以链接的JavaDoc的第一行读取

不包含重复元素的集合。

因此HashSetTreeSet(以及所有其他正确实施的Set(s))不允许重复。

相关问题