我想將我的數據存儲在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