使用 Apache Commons Collections 我找到了OrderedMapIterator
在OrderedMap
. 迭代到下一个条目按预期工作。转到前一个元素不会返回前一个元素,而是返回当前元素。
OrderedMap<String, String> linkedMap = new LinkedMap<>();
linkedMap.put("key 1", "value 1");
linkedMap.put("key 2", "value 2");
linkedMap.put("key 3", "value 3");
OrderedMapIterator<String, String> iterator = linkedMap.mapIterator();
while (iterator.hasNext()) {
String key = iterator.next();
System.out.println(key);
if (key.endsWith("2") && iterator.hasPrevious()) {
System.out.println("previous: " + iterator.previous());
iterator.next(); // back to current element
}
}
我期望输出
key 1
key 2
previous: key 1
key 3
但得到了
key 1
key 2
previous: key 2
key 3
我用OrderedMapIterator
错了还是这是一个错误?