我juste学习了JAVA,我对这段代码有疑问:
HashSet myHashSet = new HashSet();
int[] tab1 = new int[] {0,0};
int[] tab2 = new int[] {0,0};
myHashSet.add(tab1);
myHashSet.add(tab2);
现在我的HashSet
包含{{0;0};{0;0}}
!在这种情况下,如何管理简单的重复项?
我认为HashSet
不允许重复。
答案 0 :(得分:2)
HashSet
不允许基于hashCode
和equals
方法重复,但数组不会覆盖此类方法,因此即使您有两个具有相同内容的数组,它们也是如此不 相同的数组,因此Set
允许使用它们。
请改用List<Integer>
。请注意Integer
超过int
的用法,因为泛型不支持基本类型。
答案 1 :(得分:0)
两个数组,即使它们包含相同的元素,也可能不相等,因为相等被定义为非基元的引用相等。