2012-04-18 68 views
1

我想實現一個複雜的數據結構,看起來像操縱複雜的HashMap

Map<A,Set<B>> map = new HashMap<A,Set<B>>(); 

,但我不知道如何將內容添加到這個數據結構。我試圖做一個

map.put(a,b); 

但這並沒有幫助,因爲它期望一套。我需要實現這個數據結構。有什麼想法嗎?

+0

你想添加到地圖中? – ataylor 2012-04-18 16:10:09

+0

我想從Web服務中提取信息。關鍵字A本身就是一個說明項目名稱。每個項目都有一組團隊成員。所以我需要將該項目映射到另一組。希望我在這裏說明一些道理:( – curious123 2012-04-18 16:13:57

回答

1

您需要包含在哈希表集合內add你的元素:

if (!map.containsKey(a)) { 
    map.put(a, new Set<B>()); 
} 
map.get(a).add(b); 
+0

謝謝你,這是我用過的。 – curious123 2012-04-18 21:50:35

0

您首先需要獲取一組,然後添加到它:

map.get(a).put(b); 

您可能還需要以處理該集合不存在的特例。

Set<B> set = map.get(a); 
if (set == null) 
{ 
    set = new HashSet<B>(); 
    map.put(a, set); 
} 
set.put(b); 
1

如果你可以負擔增加依賴到你的項目然後Guava支持這一點。您需要使用SetMultimap

+0

嗯,番石榴團隊成員在這裏,我想你的意思是'SetMultimap'。 – 2012-04-18 16:13:05

+0

@LouisWasserman yep糾正它 – 2012-04-18 16:15:37