在hashset中添加了重复的int []?

时间:2014-08-04 21:24:14

标签: java int duplicates add hashset

我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不允许重复。

2 个答案:

答案 0 :(得分:2)

HashSet不允许基于hashCodeequals方法重复,但数组不会覆盖此类方法,因此即使您有两个具有相同内容的数组,它们也是如此 相同的数组,因此Set允许使用它们。

请改用List<Integer>。请注意Integer超过int的用法,因为泛型不支持基本类型。

答案 1 :(得分:0)

两个数组,即使它们包含相同的元素,也可能不相等,因为相等被定义为非基元的引用相等。