我無法得到兩個不同的objects
成TreeSet
如果一個人的如何將兩個不同的對象放到TreeSet中?
compareTo(the other)==0.
在某一幫助能理解這一點,我怎麼能實現它的樹集。上述程序的
public class Test
{
private static SortedSet sortedSet = new TreeSet();
public static void main(String[] args) {
sortedSet.add(new IntegerBucket("Winner", 3));
sortedSet.add(new IntegerBucket("Looser", 3));
System.out.println("sortedSet has " + sortedSet.size() + " members");
System.out.println(sortedSet);
}
}
class IntegerBucket implements Comparable {
private int value = 0;
private String name = null;
public IntegerBucket(String n, int val) {
name = n;
value = val;
}
public int getValue() {
return value;
}
// Comparable interface
public int compareTo(Object ob) {
return getValue() - ((IntegerBucket) ob).getValue();
}
public String toString() {
return name + " " + getValue();
}
}
輸出是:
sortedSet has 1 members
[Winner 3]
當在
Comparator
傳遞你確定你正確地定義了'compareTo'方法嗎?這是你的決定 - 沒有正確和錯誤的答案 - 但你真的想要「[贏家,3] == [失敗者,3]」? –@CarlosHeuberger有更強的要求比''Comparable'帶'TreeSet' ....看到我的答案中的引用 –
@CarlosHeuberger是的,它是:你的報價是「強烈建議,但不是嚴格要求[比較應該與平等一致]「;'TreeSet'說:「請注意,一套... **所保留的順序必須與...相等」。 –