我希望在TreeSet中拥有一些int对,并按照第一个数字排序。
代码测试请见此链接:
我不知道为什么TreeSet的大小会变成1。看起来
感谢任何帮助。
顺便说一下:实际上,我试图将重复的数字放入一个集合中,这是不可能的。然后我尝试在一个集合中放置int对。第一个数字是我想要的实际数字,第二个数字是为了防止重复出现。但我遇到了这个问题。
代码测试请见此链接:
public static void main (String[] args) throws java.lang.Exception
{
SortedSet<int[]> s = new TreeSet<int[]>(new Comparator<int[]>(){
public int compare(int[] a, int[] b) {
return b[0] - a[0];
}
});
int[] a = new int[]{1, 2};
int[] b = new int[]{1, 3};
s.add(a);
s.add(b);
System.out.println(s.size());
}
我不知道为什么TreeSet的大小会变成1。看起来
a
和b
的hashCode相同,但为什么呢?感谢任何帮助。
顺便说一下:实际上,我试图将重复的数字放入一个集合中,这是不可能的。然后我尝试在一个集合中放置int对。第一个数字是我想要的实际数字,第二个数字是为了防止重复出现。但我遇到了这个问题。
return b[0] - a[0];
的时候,你在想什么啊? - Nir Alfasib[0] - a[0]
作为compare()
的结果。现在我知道这是不可行的。谢谢! - Meng Wang