2012-04-16 44 views
6

我試圖學習和理解HashMap的工作。所以我創建了這個hashmap來存儲某些值,這些值在使用迭代器顯示時給出的輸出爲從HashMap中提取值

1=2 
2=3 
3=4 

等等。這個輸出我使用Iterator.next()函數獲得。現在我真正懷疑的是,自從Iterator對象返回這個值的類型後,如果我只需要提取上述等式的右側值,那麼是否有任何函數呢?就像一個子串。有沒有什麼辦法可以得到結果爲

2 
3 
4 

任何幫助將不勝感激。提前致謝。

+2

在大多數情況下,不需要直接與迭代器進行交互。請參閱Peter Lawrey的答案,瞭解如何爲每個循環制作一個。 – unholysampler 2012-04-16 19:19:37

回答

11

我會使用類似

Map<Integer, Integer> map = new HashMap<>(); 

for(int value: map.values()) 
    System.out.println(value); 
+0

它的工作。非常感謝。 – 2012-04-16 19:19:39

2

Map有一個名爲values()的方法來獲取所有值的集合。 (右側)

同樣,有一個方法調用keySet()來獲得所有鍵的集合。 (左側)

0

您需要Map#values()方法,該方法返回Collection

然後,您可以通過正常方式從此集合中獲取Iterator

2
import java.util.HashMap; 

public class Test 
{ 
    public static void main(String args[]) 
    { 
     HashMap < Integer , Integer > map = new HashMap < Integer , Integer >(); 

     map.put(1 , 2); 
     map.put(2 , 3); 
     map.put(3 , 4); 

     for (Integer key : map.keySet()) 
     { 
      System.out.println(map.get(key)); 
     } 
    } 
}