2014-11-22 118 views
0

我想遍歷一個hashmap。我知道我可以很容易地使用entrySet。但問題是我想一次訪問兩個元素。迭代hashmaps並訪問它的元素

例如:

HasHMap<Integer,Point> myMap = new HashMap<Integer,Point>(); 
      //I add some points to the map where integer is the id of that point 

我希望能夠同時訪問兩個元素,所以我可以使用圖形的drawLine方法。

我不確定是否有辦法。

注意:我使用了一個散列表,因爲通過它的id很容易找到任何點,因爲我的地圖具有由ID列表構成的多邊形。

+0

可能重複[遍歷映射中的每個條目](http://stackoverflow.com/questions/46898/iterate-over-each-entry-in-a-map) – GreenMatt 2014-11-22 03:38:55

+0

每對兩點?還是隻有兩個具體點?您可以多次調用'myMap.get'。 – 2014-11-22 04:08:17

+0

是遍歷每兩對點。 @LouisWasserman – Moe 2014-11-22 05:47:38

回答

0

只需在循環中設置一個單獨的Map.Entry變量即可。然後你可以使用drawTo使用這個變量和循環變量。

Map.Entry<?, ?> oldValue = null; 
for(Map.Entry<?, ?> newValue : values) { 
    if (oldValue != null) { 
     doSomethingWithBoth(oldValue, newValue); 
    } 
    oldValue = newValue; 
} 

我不知道你使用的是什麼樣的變量,因此......你應該把你在那裏使用的類型。

+0

這完美的作品。儘管我花了一些時間來理解其邏輯。謝謝。這項工作背後的偉大邏輯。 – Moe 2014-11-22 05:58:19