我正在嘗試使用Processing和geoJSON創建Cholorpleth地圖。我無法通過我的HashMap
循環檢查將決定多邊形顏色強度的屬性。在Java中使用HashMap進行迭代
目前,這是我的代碼:
void draw() {
map.draw();
for (int i = 0; i < countyMarkers.size(); i++) {
Marker county = countyMarkers.get(i);
String pop = countyData.get("pop").toString();
println(i + "pop: " + pop);
}
我想這樣做的是循環通過我HashMap
countyData
,讓每個條目的人口。使用if語句將其與值進行比較,然後根據語句爲true將其分配給顏色。
我的HashMap可以在這裏看到:
{name=Carlow, pop=54,612}
{name=Cavan, pop=73,183}
{name=Clare, pop=117,196}
{name=Cork, pop=519,032}
{name=Donegal, pop=161,137}
{name=Dublin, pop=1,273,069}
{name=Galway, pop=250,541}
{name=Kerry, pop=145,502}
{name=Kildare, pop=210,312}
{name=Kilkenny, pop=95,419}
{name=Laois, pop=80,559}
{name=Letrim, pop=31,796}
{name=Limerick, pop=191,809}
{name=Longford, pop=39,000}
{name=Louth, pop=122,897}
{name=Mayo, pop=130,638}
{name=Meath, pop=184,135}
{name=Monaghan, pop=60,483}
{name=Offaly, pop=76,687}
{name=Roscommon, pop=64,065}
{name=Sligo, pop=65,393}
{name=Tipperary, pop=158,754}
{name=Waterford, pop=113,795}
{name=Westmeath, pop=86,164}
{name=Wexford, pop=145,320}
{name=Wicklow, pop=136,640}
我是比較新的這種類型的數據,所以我很茫然到哪裏,我錯了工作。我認爲我的邏輯是正確的我只是不知道如何實現它。 我很感謝在這個問題上的任何幫助。
目前這條線 - >println(i + "pop: " + pop);
輸出HashMap中的最後一個條目一遍又一遍。
這是我得到
0pop: 136,640
1pop: 136,640
2pop: 136,640
3pop: 136,640
4pop: 136,640
5pop: 136,640
6pop: 136,640
7pop: 136,640
8pop: 136,640
9pop: 136,640
10pop: 136,640
11pop: 136,640
12pop: 136,640
13pop: 136,640
14pop: 136,640
15pop: 136,640
16pop: 136,640
17pop: 136,640
18pop: 136,640
19pop: 136,640
20pop: 136,640
21pop: 136,640
22pop: 136,640
23pop: 136,640
24pop: 136,640
25pop: 136,640
輸出我用這個方法填充我HashMap
。
void getCountyDetails(List<Marker>m) {
countyData = new HashMap();
for (Marker county: countyMarkers) {
countyData.putAll(county.getProperties());
println(countyData);
}
}
修改後的代碼在這裏
Set<String> keySet = countyData.keySet();
for(String pop : keySet){
String value = countyData.get(pop).toString();
println("population:" + value);
}
現在是輸出:
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
population:Wicklow
population:136,640
它似乎仍然沒有通過的HashMap
新方式,每個條目迭代填充HashMap
void getCountyDetails(List<Marker>m) {
countyData = new HashMap();
int i = 0;
for (Marker county: countyMarkers) {
countyData.put(i,county.getProperties());
i++;
}
}
「HashMap」的關鍵字是什麼? –
這可能聽起來很愚蠢,但我不認爲我指定了鍵,我只是使用'putAll()'方法將數據添加到它,並且當我打印它時,它是控制檯窗口中的輸出! – Javacadabra
我想也許'名稱'和'流行'鑰匙 – Javacadabra