2013-10-17 211 views
1

我將如何迭代一個字符串「鍵」具有的列表「值」。遍歷HashMap <String,List <Class>>

Map<String, List<wordsStreamed>> hm = new HashMap<String, List<wordsStreamed>>(); 
hm.put(wordChoosen, sw.streamMethod()); 

hm有一個鍵和超過10,000個值。我想迭代的值,所以我可以比較我的密鑰與所有的值。我也想知道這段代碼是從類的列表中獲取我的字符串值的最佳方式。

hm.values().iterator().next().get(i).toString() 
+1

_i想迭代所有的值,所以我可以比較我的密鑰和所有的value_看起來像濫用'Map',一般你不應該在這種情況下迭代,值應該映射關鍵 –

+0

所以我不應該使用在這種情況下的地圖? – BigApeWhat

+1

你應該輸入那些用鍵邏輯映射的值,所以在檢索時你不必遍歷所有的鍵和相關的值 –

回答

2

要遍歷您的HashMap的值,可以使用快速枚舉。

您可能需要在這裏遍歷密鑰集,然後訪問各個值的List,並遍歷List的每個項目以將其與密鑰進行比較。

例如:

Map<String, List<Object>> hm = new HashMap<String, List<Object>>(); 
for (String key : hm.keySet()) { 
    // gets the value 
    List<Object> value = hm.get(key); 
    // checks for null value 
    if (value != null) { 
     // iterates over String elements of value 
     for (Object element : value) { 
      // checks for null 
      if (element != null) { 
       // prints whether the key is equal to the String 
       // representation of that List's element 
       System.out.println(key.equals(element.toString())); 
      } 
     } 
    } 
} 

注意我與Object類代替這裏你WordsStreamed類。

0

我要遍歷值,這樣就可以與所有的價值

貌似數據結構的濫用比較我的鑰匙,一般情況下不應有這樣的場景進行迭代和值應與鍵映射

您應該輸入那些邏輯上與鍵映射的值,以便在檢索時不必遍歷所有鍵和相關值

相關問題