我想将我的数据存储在HashMap<Point[], Double>
中。我使用迭代来分配数据,但是当我在最后检查时,元素的数量仅为1.我已在自定义类Point中实现了hashCode()
和equals()
。ArrayList自定义类作为HashMap键
HashMap<Point[], Double> hmDistOrd = new HashMap<Point[], Double>();
Point[] keyPts = new Point[2];
for (int i=0; i<intersectionPts.size(); i++) {
p1 = intersectionPts.get(i);
for (int j=0; j<intersectionPts.size(); j++) {
p2 = intersectionPts.get(j);
if (!p1.equals(p2)) {
keyPts[0] = p1;
keyPts[1] = p2;
d = p1.distance(p2);
hmDistOrd.put(keyPts, d);
}
}
}
任何提示?提前致谢!
使用集合而不是数组。这很容易。将地图更改为'Map,Double>'并使用Arrays.asList()从数组中填充它。 –
AlexR
哦,我刚刚意识到我把密钥声明为Array。多么愚蠢。让我先编辑它,看看它是否有效。 – springrolls
@AlexR:谢谢!它现在有效。 – springrolls