場所のリストからすべての一意の座標を、座標をキーとして、カウントを値として持つ単一の HashMap に追加しようとしています。キーは、「$」記号で連結された経度と緯度です。
//String = coordinates concatinated with '$', Integer = coordinate occurrence count
private HashMap<String, Integer> coordMap = new HashMap<String, Integer>();
...
public void addCoords(double longitude, double latitude) {
//The total count of the state
stateCount++;
String coordsConcat = longitude + "$" + latitude;
//Here we're removing the entry of the existing coord, then re-adding it incremented by one.
if (coordMap.containsKey(coordsConcat)) {
Integer tempCount = coordMap.get(coordsConcat);
tempCount = tempCount + 1;
coordMap.remove(coordsConcat);
coordMap.put(coordsConcat, tempCount);
} else {
coordMap.put(coordsConcat, 1);
}
}
私が抱えている問題は、テストを通じて同じ経度と緯度の座標を 2 つ入力したにもかかわらず、containsKey が常に false を返すことです。
編集: addCords(0,0);
5 回試しましたが、HashMap はまだ空です。
編集 2: double の値は、1000 分の 1 までです。
テストケース:
GeoState test = new GeoState("MA");
test.addCoords(0,0);
test.addCoords(0,0);
test.addCoords(0,0);
test.addCoords(0,0);
System.out.println(test.getRegionCoords());
{}
これは感謝を返します