我在LinkedHashMap中有第一个键/值对,我从循环中得到它:
for (Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
//put key value to use
break;
}
稍后,根据事件,我需要linkedHashMap中的下一个键/值对。这样做的最佳方式是什么?
答案 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;
}