在Java中,是否有一个对象的作用类似于用于存储和访问键/值对的Map,但是可以返回键的有序列表和值的有序列表,从而使键和值列表的顺序相同?因此,作为按代码解释,我正在寻找某种行为,就像我的虚拟OrderedMap:OrderedMap<Integer, String> om = new OrderedMap<>();om.put(0, "Zero");om.put(7, "Seven");String o = om.get(7); // o is "Seven"List<Integer> keys = om.getKeys();List<String> values = om.getValues();for(int i = 0; i < keys.size(); i++){ Integer key = keys.get(i); String value = values.get(i); Assert(om.get(key) == value);}
3 回答
沧海一幻觉
TA贡献1824条经验 获得超5个赞
是否有一个对象的作用类似于用于存储和访问键/值对的Map,但是可以返回键的有序列表和值的有序列表,从而使键和值列表的顺序相同?
您正在寻找java.util.LinkedHashMap。您将获得Map.Entry <K,V>对的列表,该对始终以相同的顺序进行迭代。该顺序与放置项目的顺序相同。或者,使用java.util.SortedMap,其中键必须具有自然顺序或由来指定Comparator。
郎朗坤
TA贡献1921条经验 获得超9个赞
您可以利用可以按升序或降序键访问和遍历的NavigableMap接口。该接口旨在取代 SortedMap接口。通常,可导航地图是根据其键的自然顺序或在地图创建时提供的比较器进行排序的。
它有三个最有用的实现:TreeMap,ImmutableSortedMap和ConcurrentSkipListMap。
TreeMap示例:
TreeMap<String, Integer> users = new TreeMap<String, Integer>();
users.put("Bob", 1);
users.put("Alice", 2);
users.put("John", 3);
for (String key: users.keySet()) {
System.out.println(key + " (ID = "+ users.get(key) + ")");
}
输出:
Alice (ID = 2)
Bob (ID = 1)
John (ID = 3)
添加回答
举报
0/150
提交
取消