zoukankan      html  css  js  c++  java
  • Stream Map 的排序

    根据key排序

    public static void main(String[] argv) {
    
            Map<String, Integer> map = new HashMap<>();
            map.put("z", 10);
            map.put("b", 5);
            map.put("a", 6);
            map.put("c", 20);
            map.put("d", 1);
            map.put("e", 7);
            map.put("y", 8);
            map.put("n", 99);
            map.put("j", 50);
            map.put("m", 2);
            map.put("f", 9);
    
            System.out.println("Original...");
            System.out.println(map);
    
            //重声一个map用来装排序后的值
            Map<String, Integer> result = new LinkedHashMap<>();
    
            //sort by key, a,b,c..., and put it into the "result" map
            map.entrySet().stream()
                    .sorted(Map.Entry.comparingByKey())
                    .forEachOrdered(x -> result.put(x.getKey(), x.getValue()));
    
            System.out.println("Sorted...");
            System.out.println(result);
    
        }

    根据value排序

       public static void main(String[] argv) {
    
            Map<String, Integer> map = new HashMap<>();
            map.put("z", 10);
            map.put("b", 5);
            map.put("a", 6);
            map.put("c", 20);
            map.put("d", 1);
            map.put("e", 7);
            map.put("y", 8);
            map.put("n", 99);
            map.put("j", 50);
            map.put("m", 2);
            map.put("f", 9);
            System.out.println("Original...");
            System.out.println(map);
            //重声一个map用来装排序后的值
            Map<String, Integer> result = new LinkedHashMap<>();
            //sort by key, a,b,c..., and put it into the "result" map
            map.entrySet().stream()
                    .sorted(Map.Entry.<String, Integer>comparingByValue().reversed())  // reversed倒序,不指定类型,会默认为<java.util.Map.Entry<java.lang.Object,V>>
                    .forEachOrdered(x -> result.put(x.getKey(), x.getValue()));
    
            System.out.println("Sorted...");
            System.out.println(result);
    
        }
  • 相关阅读:
    跳跃表原理
    ThreadLocal
    Innodb中的事务隔离级别和锁的关系
    线程池拒绝策略
    vue 的 nextTick 原理
    Git 的基本操作
    JavaScript 的运行机制
    实现一个react系列三:生命周期
    实现一个react系列二:渲染组件
    实现一个react系列一:JSX和虚拟DOM
  • 原文地址:https://www.cnblogs.com/zhangweibin/p/12880651.html
Copyright © 2011-2022 走看看