虽然文档明确指出,LinkedHashMap和LinkedHashSet都是
维护一个通过其所有条目运行的双链接列表。
我不明白为什么这些实现不返回一个ListIterator来导航下一个和上一个。有人知道引擎盖下的局限性吗?
发布于 2014-10-09 11:37:45
ListIterator打开了“在迭代器当前位置”插入它们的可能性。但这打破了LinkedHashMap/Set本身的命令,因为他们的合同规定,列表顺序将严格等同于插入顺序。
发布于 2014-10-09 11:23:47
不能直接迭代键/值对的数据结构,这不是集合。即使在内部有一个双链接列表来记住插入顺序,您仍然必须以标准的方式获得迭代器。
在这些数据结构上有一些方法可以返回键、值或条目(key+value)的集合:keySet()、values()、entrySet(),您可以从这些方法中获得迭代器。
也许你想要的是map.entrySet().iterator()在这里,虽然我同意这是一个集合,而且订单技术上没有具体说明.
https://stackoverflow.com/questions/26277042
复制相似问题