java map根据值排序怎么实现

44次阅读
没有评论

共计 765 个字符,预计需要花费 2 分钟才能阅读完成。

要根据 Map 的值进行排序,可以使用 Java 8 中的 Stream 和 Lambda 表达式来实现。下面是一个示例代码:

import java.util.*;

public class MapSortingExample {public static void main(String[] args) {Map<String, Integer> map = new HashMap<>();
        map.put("A", 5);
        map.put("B", 3);
        map.put("C", 8);
        map.put("D", 1);

        // 使用 Stream 的 sorted 方法,根据值进行排序
        Map<String, Integer> sortedMap = map.entrySet()
                .stream()
                .sorted(Map.Entry.comparingByValue())
                .collect(LinkedHashMap::new,
                        (map1, entry) -> map1.put(entry.getKey(), entry.getValue()),
                        LinkedHashMap::putAll
                );

        // 打印排序后的 Map
        sortedMap.forEach((key, value) -> System.out.println(key + ": " + value));
    }
}

此示例先创建了一个包含键和值的 Map,然后使用 Stream 的 sorted 方法对 Map 的 Entry(键值对)进行排序,使用 Map.Entry.comparingByValue() 指定按值进行排序。最后,使用 collect 方法收集排序后的结果,并将其放入 LinkedHashMap 中以保持排序顺序。

输出结果为:

D: 1
B: 3
A: 5
C: 8

请注意,由于 HashMap 本身是无序的,因此我们使用 LinkedHashMap 来保持排序顺序。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计765字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)