获取LinkedHashMap中的下一个项目?

时间:2010-11-05 21:01:19

标签: java map linkedhashmap

我在LinkedHashMap中有第一个键/值对,我从循环中得到它:

for (Entry<String, String> entry : map.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
    //put key value to use
    break;
}

稍后,根据事件,我需要linkedHashMap中的下一个键/值对。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:5)

获取迭代器并使用hasNext()next()

...
Iterator<Entry<String, String>> it = map.entrySet().iterator();
if (it.hasNext()) {
    Entry<String, String> first = it.next();
    ...
}
...
if (eventHappened && it.hasNext()) {
    Entry<String, String> second = it.next();
    ...
}
...

答案 1 :(得分:1)

而不是每个循环使用迭代器。

Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry entry = (Map.Entry)it.next();
    String key = entry.getKey();
    String value = entry.getValue();
    // do something
    // an event occurred 
    if (it.hasNext()) entry = (Map.Entry)it.next();
}

答案 2 :(得分:1)

如果需要比较两个连续值,则更容易获得前一个值。

String pkey = null; 
String pvalue = null; 
for (Entry<String, String> entry : map.entrySet()) { 
    String key = entry.getKey(); 
    String value = entry.getValue(); 

    // do something with pkey/key and pvalue/value.

    pkey = key;
    pvalue = value;
}