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