2
 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. 什么方法调用可以让我完成这项工作?我想检查值...

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

4

2 回答 2

1

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

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

ASet如果这样的对象可以使用:

Set<MyClass> s;
MyClass o;
boolean b = s.contains(o);
于 2012-12-06T03:45:06.197 回答
0

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

于 2012-12-06T03:45:40.997 回答