2011-09-08 117 views
4

我搜索一個數據結構,我可以存儲幾個鍵值對。如何將多個值存儲到一個鍵(java)

的數據基本上是這樣的:

(1 , value_1) 
(2 , value_2) 

所以我想用的HashMap的。可悲的是,這對我不起作用,因爲可能會出現多個值到一個鍵。

(在上面的例子:

(1 , value_2) 

可能是另一個進入)

是否存在的performantly存儲這些數據,除了與新對象或類似這樣的東西創建一個列表的任何方式。

get(1) 

應該返回value_1和value_2作爲列表或設置或類似的東西。

在此先感謝

回答

0

你可以使用HashMap<Integer,Set<T>>HashMap<Integer,List<T>>,其中Tvalue_1類型,value_2

基本上,get會做你想做的開箱什麼。添加元素更麻煩一點;你可以寫一個簡短的包裝函數來使它更好。

5

如果鍵是整數並且值是例如字符串和屬於一個鍵的值是不同的,你可以使用例如普通的Java結構:

Map<Integer, HashSet<String>> container = new HashMap<Integer, HashSet<String>>(); 

void add(Map<Integer, HashSet<String>> container, int key, String value) { 
    HashSet<String> values = container.get(key); 
    if (values == null) { 
     values = new HashSet<String>(); 
    } 
    values.add(value); 
    container.put(key, values); 
} 
相關問題