我需要一个提供键-值映射关系的数据结构Map
(例如myKey = myDS.get(index)
),但还允许我基于(int)索引(例如)来获取键,而不必遍历数据结构以使键达到所需的键值指数。
我考虑过使用LinkedHashMap
,但没有找到在给定索引处获取密钥的方法。我想念什么LinkedHashMap
吗?还是我可以使用其他数据结构?
编辑:
这不是重复。另一个问题的正确答案是使用某种方法SortedMap
; 但是,这不是对这个问题的正确答案,因为我希望能够Entry
通过Integer
索引从数据结构中检索到,这在任何Java库中都不支持。
LinkedHashMap提供接口的哈希表/双向链表实现Map
。从它开始extends 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。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句