加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 具有键值映射和排序的数据结构

发布时间:2020-12-15 04:12:36 所属栏目:Java 来源:网络整理
导读:我需要一个提供键值映射的数据结构,比如Map,但这也允许我基于(int)索引(例如myKey = myDS.get(index))获取键,而不必迭代数据结构,以获得所需索引的键. 我想过使用LinkedHashMap,但我没有看到在给定索引处获取密钥的方法.我在LinkedHashMap中遗漏了什么?或者
我需要一个提供键值映射的数据结构,比如Map,但这也允许我基于(int)索引(例如myKey = myDS.get(index))获取键,而不必迭代数据结构,以获得所需索引的键.

我想过使用LinkedHashMap,但我没有看到在给定索引处获取密钥的方法.我在LinkedHashMap中遗漏了什么?或者我可以使用另一种数据结构吗?

编辑:
这不是重复的.另一个问题的正确答案是使用某种SortedMap;但是,这不是这个问题的正确答案,因为我希望能够通过整数索引从数据结构中检索一个条目,这在任何Java库中都不受支持.

解决方法

LinkedHashMap提供了Map接口的哈希表/双向链表实现.由于它扩展了HashMap,它仍然由数组支持,但是还有一个双向链接的Entry对象列表,以确保迭代顺序是可预测的.

所以,基本上它意味着当你迭代遍历地图时:

for (Map.Entry<keyType,valueType>> entry : linkedHashMap.entrySet())
{
   System.out.println("Key: " + entry.getKey().toString() + 
                     " Value: " + entry.getValue.toString());
}

它将按照您添加键的顺序打印,而不是非链接的Map,它不会按插入顺序打印.您无法像所希望的那样访问数组的元素,因为支持哈希的数组不是有序的.只订购了双向链表.

解:

您正在寻找的是来自Apache Commons的LinkedMap.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读