myMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(x,y) -> {throw new AssertionError();},
LinkedHashMap::new
));
List<Map.Entry<String, Integer>> entries =
new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(entries, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> a, Map.Entry<String,Integer> b){
return a.getValue().size().compareTo(b.getValue().size());
}
});
Map<String, Integer> sortedMap = new LinkedHashMap<String, Integer>();
for (Map.Entry<String, Integer> entry : entries) {
sortedMap.put(entry.getKey(), entry.getValue());
}
对LinkedHashMap进行排序
你试过的很接近。以下是一个固定的版本:
List<Map.Entry<Integer, Set<Integer>>> entries = new ArrayList<>(
map.entrySet());
Collections.sort(entries,
new Comparator<Map.Entry<Integer, Set<Integer>>>() {
public int compare(Map.Entry<Integer, Set<Integer>> a,
Map.Entry<Integer, Set<Integer>> b) {
return Integer.compare(
a.getValue().size(),
b.getValue().size());
}
});
Map<Integer, Set<Integer>> sortedMap = new LinkedHashMap<>();
for (Map.Entry<Integer, Set<Integer>> entry : entries) {
sortedMap.put(entry.getKey(), entry.getValue());
}
用…设置
LinkedHashMap<Integer, Set<Integer>> map = new LinkedHashMap<>();
map.put(1, new HashSet<>(Arrays.asList(1,2,3)));
map.put(2, new HashSet<>(Arrays.asList(1,2)));
map.put(3, new HashSet<>(Arrays.asList(1)));
和跑步
System.out.println(sortedMap);
{3=[1], 2=[1, 2], 1=[1, 2, 3]}
我有一个,其中的键是字符串。我需要获取这些键并根据键大小(即字符串长度)对其进行排序,然后将其存储在某个中。 注意:如果两个键的大小相同,那么我们可以把它放在任何顺序。 为(如)。
问题内容: 我有一个这样的: 我想根据列表值的大小按升序对地图进行排序。我怎样才能做到这一点? 在这种情况下,我希望订购加拿大,印度,美国的钥匙。 问题答案: 没有可保证的迭代顺序,因此您需要收集到一个才能使排序有意义。 之所以引发,是因为合并器功能仅用于并行流],而我们并未使用。 如果您觉得可读性更好,也可以使用:
本文向大家介绍PHP实现根据数组某个键值大小进行排序的方法,包括了PHP实现根据数组某个键值大小进行排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现根据数组某个键值大小进行排序的方法。分享给大家供大家参考,具体如下: 问题:针对给定数组的某个键的键值进行排序 解决方法: 运行结果: PS:这里再为大家推荐一款关于排序的演示工具供大家参考: 在线动画演示插入/选择/冒泡/
我正在尝试使用Java对由整数对字符串组成的数组进行排序 输入为: 所需的输出是:
问题内容: 如何使用树的值而不是键对树图进行排序? 问题答案: 您不能这样做,因为TreeMap的比较器仅针对键运行,例如,参见this 构造函数。 无论如何,您可以使用多个Collections,使用TreeMap(或HashMap)通过键查找元素,并具有SortedSet来迭代值。