如何检查HashSet的值限制?

时间:2012-12-06 03:40:08

标签: java

 HashSet<int[]>  a = new HashSet<int[]>();
 int[] somestuff = {1, 2, 3};
 a.add(somestuff);
 int[] somestuff2 = {1, 2, 3};
 System.out.println(a.contains(somestuff2));

false

如何正确检查?只有当我检查somestuff时才会得到真实,但即使变量名/文字不相同,但值是,我想得到true。什么方法调用允许我完成这个?我想检查价值......

也许它与集合中散列的内容有关,也依赖于最初用于填充它的变量文字

2 个答案:

答案 0 :(得分:1)

没有直接简单的方法来做你想做的事,但是......

我会创建一个由int[]字段组成的类,并根据数组的内容实现equals()和一致的hashCode()

如果此类对象可以使用,则为Set

Set<MyClass> s;
MyClass o;
boolean b = s.contains(o);

答案 1 :(得分:0)

你不能通过调用a.contains()方法来做到这一点。你必须迭代哈希表并检查值,因为两个数组是相同的。