我保存的值到Hashmap<String,Records>
樣品價值1,objRecord1
,2,objRecord2
,1,objRecord3
等等......我需要從HashMap的字符串,其檢索的所有記錄值的一個關鍵是1檢索HashMap的列表到另一個列表中,有許多值
像 (我在這裏本身搞亂) arrayList myArraylist=Hashmap.get(1);
我保存的值到Hashmap<String,Records>
樣品價值1,objRecord1
,2,objRecord2
,1,objRecord3
等等......我需要從HashMap的字符串,其檢索的所有記錄值的一個關鍵是1檢索HashMap的列表到另一個列表中,有許多值
像 (我在這裏本身搞亂) arrayList myArraylist=Hashmap.get(1);
arrayList myArraylist=Hashmap.get("1");
爲了滿足您的Hashmap聲明必須是
Map<String,List<Record>> myMap = new HashMap<>();
雖然增加添加到list
實例添加到map
:
if(myMap.containsKey("1")){
myMap.put("1", myMap.get("1").add(new Record()));//record obj
}else{
List<Record> list = new ArrayList<>();
list.add(record);
myMap.put("1", list));
}
再回到
List<Record> list = myMap.get("1");
如何添加和檢索值? – onkar
@onkar更新了我的帖子。希望有所幫助。讓我知道進一步的澄清。 –
使用Multimap
將是最簡單的,在我看來。
http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Multimap.html
也就是說,如果你願意增加對谷歌公共:)
注意的依賴:這是不是從Apache的百科全書一樣MultiMap
(注意大小寫不同)。
我也推薦在apache commons上使用Guava庫。一個解決許多問題的導入。 – tom
是的。番石榴使用泛型。Apache Commons不 –
同意 - Guava是一個偉大的圖書館 – yamafontes
使用列表或設置爲值,則繼續更新該列表或設置。
Hashmap<String, ArrayList<Records>>
是否需要對每個密鑰的多個記錄進行排序?如果是這樣,例如:
Map<String, List<Record>>
是合適的。否則,Guava MultiMap將是適合的。
更好的方法是將List用作hashmap中的值。
喜歡的東西:HashMap<String, List<Record>>
當你想將記錄在地圖上,你可以這樣做:
void insertRecord(String key, Record record){
List<Record> records = map.get(key);
if(records == null){
records = new ArrayList<Record>();
map.put(key, records);
}
records.add(record);
}
如果你想每個鍵則最好使用記錄集的多張記錄值
Map<String, Set<Record>>
'HashMap'不能有兩個元素具有相同的鍵。 –
那我該用什麼? – onkar
您可以使用apache commons中的'MultiMap'實現(http://commons.apache.org/proper/commons-collections/javadocs/api-3.2.1/org/apache/commons/collections/MultiMap.html)或google專輯 –