2014-09-06 100 views
2

我想迭代一個TreeMap直到一個特定的鍵。如何遍歷一個TreeMap直到一個特定的鍵?

 for (int i = 0 ; i < specifickey ; i++) 

我該怎麼做?

+0

獲得地圖的keySet然後通過它 – Adi 2014-09-06 14:37:00

+0

但這種方式我遍歷所有的地圖迭代!當我找到特定的密鑰時,我想打破這個循環。 – user3572461 2014-09-06 14:39:44

+0

使用headMap作爲TreeMap從java6開始實現NavigableMap + 1 – 2014-09-06 14:45:07

回答

0

像其他地圖:

Map<Integer, Object> map = ...; 

for (int key : map.keySet()) { 
    if(key == yourValue) { 
     //value found 
    } 
} 

編輯:再次看了你的問題,如果你只是想了解,如果一個關鍵的存在,則:

if(map.containsKey(key)) { 
    //do something 
} 
+0

爲什麼downvote? – 2014-09-06 14:45:51

0

如果你只是想遍歷鍵:

for (String key : map.keySet()) { 
    if (key.equals(target)) { 
     // do something 
    } 
} 

如果您還需要訪問值,那麼它的更有效遍歷條目,而不是按鍵:

Map<String, Integer> map = new TreeMap<>(); 
String target = "something"; 

for (Map.Entry<String, Integer> entry : map.entrySet()) { 
    if (entry.getKey().equals(target)) { 
     // do something with entry.getValue() 
    } 
} 
5

TreeMap實現NavigableMap它可以遍歷keys.It的範圍內由Map支持有用的,所以你做的地圖進行任何更改反映,反之亦然。您應該使用headMap(K toKey, boolean inclusive)拿到地圖

NavigableMap<K,V> navigableMap = map.headMap(toKey, true); 

for(Map.Entry entry : navigableMap .entrySet()){ 

//use the key value pair in Map.Entry 
} 
+1

+1:至少一個體面的答案,使用'TreeMap'有用的方法。 – 2014-09-06 14:44:59

+0

@LuiggiMendoza NavigableMap真的很不錯 – 2014-09-06 14:46:12