【发布时间】:2011-08-27 13:04:56
【问题描述】:
是否可以使 HashSet 与任何 Object 一起使用?我试图使对象实现 可比,但没有帮助
import java.util.HashSet;
public class TestHashSet {
public static void main(String[] args) {
class Triple {
int a, b, c;
Triple(int aa, int bb, int cc) {
a = aa;
b = bb;
c = cc;
}
}
HashSet<Triple> H = new HashSet<Triple>();
H.add(new Triple(1, 2, 3));
System.out.println(H.contains(new Triple(1, 2, 3)));//Output is false
}
}
【问题讨论】:
-
如果你希望集合是可排序的——那就是当你让它具有可比性的时候。否则,equals/hashcode 实现(如答案中所述)是正确的。 Joshua Bloch 的 Effective Java 对此有很好的章节。
标签: java object hashmap hashset