我用过LinkedHashMap
因为在 map 中输入键的顺序很重要。
但现在我想在第一个(第一个输入的条目)或最后一个获取 key 的值。
应该有first()
和last()
之类的方法吗?
我是否需要一个迭代器才能获取第一个键条目?这就是我使用 LinkedHashMap
的原因。 !
谢谢!
最佳答案
LinkedHashMap
的语义仍然是 Map 的语义,而不是 LinkedList
的语义。它保留了插入顺序,是的,但这是一个实现细节,而不是其接口(interface)的一个方面。
获取“第一个”条目的最快方法仍然是entrySet().iterator().next()
。获取“最后一个”条目是可能的,但需要通过调用 .next()
遍历整个条目集,直到到达最后一个。 while (iterator.hasNext()) { lastElement = iterator.next() }
编辑:但是,如果您愿意超越 JavaSE API,Apache Commons Collections有自己的LinkedMap
实现,它有像 firstKey
这样的方法和 lastKey
,它可以满足您的需求。界面要丰富得多。
关于Java LinkedHashMap 获取第一个或最后一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936462/