2014-03-28 116 views
-2

我需要迭代通過hashmap並獲得鍵值應該是一個字符串和該鍵中的所有值,這是一個字符串列表中的字符串?JAVA通過Hasmap與列表迭代

的僞代碼

static HashMap<String, List<String>> vertices = new HashMap<String, List<String>>(); 
for (int i = 0; i < vertices.size(); i++) 
{ 

     String key = vertices.getKey at first postions; 

    for (int x = 0; x < size of sublist of the particular key; x++) 
     { 
       String value = vertices key sublist.get value of sublist at (i); 

      } 
} 
+1

可能重複【JAVA:遍歷的HashMap(http://stackoverflow.com/questions/1066589/java-iterate-through-hashmap) – Bucket

+0

什麼它是一個清單的具體情況?我如何獲得該特定密鑰的列表?我還需要該鍵的字符串值以及列表的值? – MAXGEN

+0

我應該刪除這篇文章嗎? – MAXGEN

回答

1

不能超過HashMap直接迭代,因爲有值內HashMap沒有數字指標。取而代之的是key值,您的情況爲String。因此這些值沒有特定的順序。但是,如果需要,可以使用vertices.entrySet()構造一組條目並對其進行迭代。的

for (Entry<String, List<String>> item : vertices.entrySet()) { 
    System.out.println("Vertex: " + item); 
    for (String subitem : item.getValue()) { 
     System.out.println(subitem); 
    } 
} 
+0

獲取每個密鑰列表的值是什麼? – MAXGEN

+0

@MAXGEN您可以嘗試foreach循環,例如在給定示例中。 – Warlord

1

嘗試vertices.keySet();

它提供了一組地圖中的所有鍵。使用它在一個for循環像下面

for (String key : vertices.keySet()) { 
    for (String value : vertices.get(key)) { 
     //do stuff 
    } 
} 
+0

如何迭代列表和字符串值將是列表對象而不是字符串? – MAXGEN

+0

@MAXGEN在這裏,'vertices.get(key)'是列表,每個'String value'是'key'的'List'值的一個元素。第二個循環_is_遍歷列表。 – Michelle