Java LinkedHashMap 获取第一个或最后一个条目

标签 java dictionary linkedhashmap

我用过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/

相关文章:

java - 将此 json 映射到 java 对象 (pojo)

java - 是否有与 frexp 等效的 Java?

java - 如何在 Java 中将字符串转换为 double 型

java - 在java中同时使多个worker的缓存无效而不影响性能

java - synchronizedMap 线程的这种用法安全吗?

java - 如何有效地从 Java 中的 LinkedHashMap 中删除条目?

java - try-catch 不捕获 IOException

Java - 如何根据 map 值的首字母对 map 值进行排序?

.net - 带有值的字典的环境变量列表 - 惯用的 F#

c# - 从字典中检索原始 key