从键值对开始迭代Java中的Map(特别是TreeMap)

时间:2014-09-28 13:13:37

标签: java treemap

我有一个TreeMap,我想迭代它并打印键值对。但我不想从头开始,我想从一个特定的键值对开始。

基本上我想这样做 -

TreeMap<String, String> treeMap = new TreeMap<String, String>();
//Populate it here
treeMap.get("key1");
//get the iterator to the treemap starting from the key1-value1 pair and iterate

如果我想从头到尾迭代,我知道如何做到这一点,但我没有找到任何答案。

2 个答案:

答案 0 :(得分:5)

您可以使用tailMap执行此操作:

Iterator<String> iter = treeMap.tailMap("key1").keySet().iterator();
while (iter.hasNext()) {
    String key = iter.next();
    String value = treeMap.get(key);
    // do your stuff
}

Iterator<Map.Entry<String,String>> iter = treeMap.tailMap("key1").entrySet().iterator();
while (iter.hasNext()) {
    Map.Entry<String,String> entry = iter.next();
    // do your stuff
}

答案 1 :(得分:3)

使用tailMap

treeMap.tailMap(fromKey)

您也可以像这样使用它;

for (Map.Entry<String, String> entry : treeMap.tailMap("key1").entrySet()) {
   // Do something
}