简体   繁体   English

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

[英]Iterate over Map (Specifically TreeMap) in Java starting from a key-value pair

I have a TreeMap, I wanted to iterate over it and print key-value pairs. 我有一个TreeMap,我想迭代它并打印键值对。 But I dont want to start from the beginning, I want to start from a particular key-value pair. 但我不想从头开始,我想从一个特定的键值对开始。

Basically I want to do this - 基本上我想这样做 -

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

I know how to do this if I want to iterate from start to end, but I dont find any answers to this. 如果我想从头到尾迭代,我知道如何做到这一点,但我没有找到任何答案。

You can do this with tailMap : 你可以用tailMap做到这一点:

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

or 要么

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

Use tailMap , 使用tailMap

treeMap.tailMap(fromKey)

You can also use it like this; 你也可以像这样使用它;

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM