2014-09-06 96 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