java - 通过索引检索 Map 的键

标签 java map

<分区>

Possible Duplicate:
Bi-directional Map in Java?

当键不是数字且无序时,如何通过索引检索 Map 的键?

例如:

Map<String, Integer> test = new TreeMap<String, Integer>();
test.put("a", 1);
test.put("b", 2);
test.put("z", 3);
test.put("m", 4);

如果我有索引 2,我想得到 z,如果我有索引 0,我想得到 a

我知道我可以用增量做肮脏循环来得到它,但是还有另一种聪明的方法吗?

最佳答案

让人有点困惑的是,您是根据项目添加的顺序引用索引,还是根据键的自然顺序(例如:字母顺序)引用索引

您可以使用 map.keySet() 获取可能的键列表,但不能保证键集将按照您添加它的顺序

如果您希望以某种顺序(例如:字母顺序)保存数据,您可以使用 TreeMap 而不是 HashMap。如果您更喜欢其他订购方式,您可以实现自己的比较器

关于java - 通过索引检索 Map 的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982220/

相关文章:

java - Android 音频指纹实现

java - 如何通过 LinkedHashMap<String,ArrayList<String>> 创建循环?

java - 在java中使用apache commons Optimize()的问题

java - SELinux 和 Java

java - 正则表达式重复字符数

java - HQL - SELECT 子句上的 COUNT 不起作用

c++ - 结合映射和字符串数组 C++

android - map 上有大量标记的问题

c++ - 如何初始化以结构为值的映射?

scala - 可变 MultiMap 到不可变 Map