2016-06-21 22 views
0

如果我們使用map,我認爲不需要爲每個循環或其他方式遍歷對象。我們有一個獨特的關鍵和價值,所以我們可以輕鬆找到價值。 我在面試中遇到了這麼多次這個問題。我不認爲所以這個問題是 是正確的。請幫助我解決問題。我們應該穿越地圖嗎?爲什麼?

+0

目前還不清楚你問 - 你想要做的爲什麼有時(通常實際上)有必要迭代Map中的所有條目? – Hulk

+0

簡單地圖有一個目錄結構。只需放一把鑰匙,找到價值。 –

回答

2

你應該穿越地圖時......你需要遍歷的地圖。你是對的,如果你有一個密鑰,你不需要做任何遍歷;只需使用密鑰。但有時候你沒有鑰匙。例如,想象一張以人名與他們的年齡爲鍵值的地圖:

Map<String, Integer> m = new HashMap<String, Integer>(); 
// Presumably these are added by a user or similar 
m.put("Joe", 27); 
m.put("Mohammad", 42); 
m.put("Maria", 29); 

後來我們需要輸出所有的名字和年齡;我們將遍歷圖(更多技術上,我們會遍歷其條目集):

for (Map.Entry<String, Integer> e : m.entrySet()) { 
    System.out.println(e.getKey() + ": " + e.getValue()); 
} 

其他時間,我們可能會遍歷keySetvalues

0

這是必要的,只要你想做些什麼來/所有條目迭代映射中的所有條目。

,你經常要與項目辦共同的東西:

  • 打印/顯示所有這些
  • 過濾它們以獲得具有特定屬性的新地圖
  • 搜索具有特定屬性的項目在地圖的值的
  • 計算統計數據(總和,最大值,最小值,平均值)