Java订购地图

在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);

}


慕运维8079593
浏览 434回答 3
3回答

沧海一幻觉

是否有一个对象的作用类似于用于存储和访问键/值对的Map,但是可以返回键的有序列表和值的有序列表,从而使键和值列表的顺序相同?您正在寻找java.util.LinkedHashMap。您将获得Map.Entry <K,V>对的列表,该对始终以相同的顺序进行迭代。该顺序与放置项目的顺序相同。或者,使用java.util.SortedMap,其中键必须具有自然顺序或由来指定Comparator。

郎朗坤

您可以利用可以按升序或降序键访问和遍历的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()) {&nbsp; System.out.println(key + " (ID = "+ users.get(key) + ")");}输出:Alice (ID = 2)Bob (ID = 1)John (ID = 3)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java