2014-02-06 87 views
0

我想將數據存儲在HashMap中,但是我似乎只能將數據源的最後一項存儲到HashMap中,我不確定爲什麼。在HashMap中存儲數據Java

下面是我的代碼:

//Loops through the counties and stores the details in a Hashmap 
void getCountyDetails(List<Marker>m){ 
    HashMap t = new HashMap(); 
    for(Marker county: countyMarkers){ 
    println("county:" + county.getProperties()); 
    t = county.getProperties(); 
    } 
    println(t); 
} 

這行 - >println("county:" + county.getProperties());

輸出這樣的:

county:{name=Carlow, pop=54,612} 
county:{name=Cavan, pop=73,183} 
county:{name=Clare, pop=117,196} 
county:{name=Cork, pop=519,032} 
county:{name=Donegal, pop=161,137} 
county:{name=Dublin, pop=1,273,069} 
county:{name=Galway, pop=250,541} 
county:{name=Kerry, pop=145,502} 
county:{name=Kildare, pop=210,312} 
county:{name=Kilkenny, pop=95,419} 
county:{name=Laois, pop=80,559} 
county:{name=Letrim, pop=31,796} 
county:{name=Limerick, pop=191,809} 
county:{name=Longford, pop=39,000} 
county:{name=Louth, pop=122,897} 
county:{name=Mayo, pop=130,638} 
county:{name=Meath, pop=184,135} 
county:{name=Monaghan, pop=60,483} 
county:{name=Offaly, pop=76,687} 
county:{name=Roscommon, pop=64,065} 
county:{name=Sligo, pop=65,393} 
county:{name=Tipperary, pop=158,754} 
county:{name=Waterford, pop=113,795} 
county:{name=Westmeath, pop=86,164} 
county:{name=Wexford, pop=145,320} 
county:{name=Wicklow, pop=136,640} 

我想將它們存儲在HashMap

這行 - >println(t);輸出:

{name=Wicklow, pop=136,640} 

希望瞭解對此事的人的幫助。基本上,它只是獲取數據的列表到HashMap中,目前僅在該列表中的最後一個項目被加入到。

+0

那麼你的'HashMap.put'方法調用在哪裏? –

回答

3

如果你要打印的每個Markerproperties,移動println(t)行成for循環,因爲目前t將指向最後使用的元素的屬性,因爲您只需重新分配它; s值是循環的每次迭代。若要put地圖中的元素,請使用put(Key, Value)putAll()方法代替

0

在java中,您應該使用hashMap.put(key,value)將新項添加到哈希映射中。 在你的代碼中,你寫了HashMap t = new HashMap(); t = county.getProperties();所以你的地圖價值實際上每次都被重新分配到鄉村房產。