为什么HashSet的属性不允许重复?
Why Are No Duplicates Allowed An Attribute Of 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
的方式不允许它有重复项,还是只是出于某种原因的选择?
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
的方式不允许它有重复项,还是只是出于某种原因的选择?