Java LinkedHashMap 获取第一个或最后一个条目
2022-08-31 07:03:37
我使用LinkedHashMap
,因为它很重要,键在映射中输入的顺序很重要。
但现在我想首先(第一个输入的条目)或最后一个条目中获取key的值。
应该有一个像和这样的方法吗?first()
last()
我是否需要有一个迭代器才能获取第一个密钥条目?这就是我使用LinkedHashMap
的原因!
谢谢!
我使用LinkedHashMap
,因为它很重要,键在映射中输入的顺序很重要。
但现在我想首先(第一个输入的条目)或最后一个条目中获取key的值。
应该有一个像和这样的方法吗?first()
last()
我是否需要有一个迭代器才能获取第一个密钥条目?这就是我使用LinkedHashMap
的原因!
谢谢!
的语义仍然是 Map 的语义,而不是 .是的,它保留了插入顺序,但这是一个实现细节,而不是其接口的一个方面。LinkedHashMap
LinkedList
获得“第一个”条目的最快方法仍然是 。获取“最后一个”条目是可能的,但需要通过调用来迭代整个条目集,直到到达最后一个条目集。entrySet().iterator().next()
.next()
while (iterator.hasNext()) { lastElement = iterator.next() }
编辑:但是,如果你愿意超越JavaSE API,Apache Commons Collections有自己的LinkedMap
实现,它具有firstKey
和lastKey
等方法,它们可以完成您正在寻找的功能。界面要丰富得多。
你可以尝试做这样的事情(以获得最后一个条目):
linkedHashMap.entrySet().toArray()[linkedHashMap.size() -1];