gpt4 book ai didi

java - 如何对 map 的键进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 08:44:26 25 4
gpt4 key购买 nike

如何对映射(树形图或散列图)的键进行排序(任何类型的排序)

我遇到了一个问题,事情是这样的。

我有一张 map ,其键为

27527-683,
27525-1179,
27525-1571,
27525-1813,
27525-4911,
27526-1303,
27526-3641,
27525-3989,
27525-4083,
27525-4670,
27526-4102,
27526-558,
27527-2411,
27527-4342

这是键列表,每个键的值都是一个列表。
现在,我如何按数字升序对这个键进行排序。

例如。如果我想排序:1,2,11,20,31,3,10
我想要的输出是:1,2,3,10,11,20,31
但是当我使用树状图的自动排序时,输出为:1,10,11,2,20,3,31

如何按数字升序排序?
请帮我。我想不出更多的方法,因为这是我第一次处理 map 和列表

最佳答案

你的键是字符串。字符串的自然顺序是按字典顺序排列的。您需要在 TreeMap 的构造函数中指定自定义比较器,或者使用 Integer 键。

此外,您可以更好地表示 Map<Key, List<Value>>作为 Google Guava Multimap ,例如参见 SortedSetMultimap .

继续 Guava 示例:

Multimap<Integer, Person> multimap = SortedSetMultimap.create(Ordering.natural(), Ordering.arbitrary());
multimap.put(1, x);
multimap.put(1, y);
multimap.put(2, z);
multimap.put(1, a);

然后

multimap.get(1)将返回一个包含任意顺序的 [x, y, a] 的集合。 multimap.keys()将返回一组排序后的 [1, 2]。

关于java - 如何对 map 的键进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4612049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com