0
你好,我無法找到任何信息,我需要做什麼使兩個鍵看起來相等。也就是說,我需要提供一個將由map.put()使用的自定義比較方法。實現類似的不幫助。地圖中的複合鍵
例如,這段代碼並不像預期的那樣工作 - 爲了我的程序的目的,兩個鍵n和n2是相同的。
private class N implements Comparable<N> {
int value;
int stuff;
String z;
@Override
public int compareTo(N arg0) {
if (arg0.z.equals(z))
return 0;
return 1;
}
}
public void dostuff() {
HashMap m = new HashMap();
N n = new N();
n.z = "1";
N n2 = new N();
n2.z = "1";
m.put(n, "one");
m.put(n2, "two");
// will print refs to two instances! - wrong
Iterator it = m.keySet().iterator();
while (it.hasNext()) {
System.err.println(it.next());
}
}
不錯的抓,我沒有實現的compareTo()是對象之間建立 – Saideira 2011-05-26 15:54:50
ORDER @Saideira:關鍵是閱讀文檔:「這個接口規定了實現它的每個類的對象進行整體排序。」 ;) – 2011-05-26 16:07:15