通过索引检索Map的键

时间:2012-12-20 23:36:30

标签: java map

  

可能重复:
  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

我知道我可以通过增量进行脏循环来获取它但是还有另一种聪明的方法吗?

1 个答案:

答案 0 :(得分:1)

使您有点困惑的是,您是根据项目的添加顺序引用索引,还是基于密钥的自然顺序(例如:按字母顺序排列)

您可以使用map.keySet()获取may键列表,但不能保证键集的顺序与您在

中添加的顺序相同。

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