• 【JAVA8】Set排序四种写法


    工作中遇到,写了很久以前的写法,师兄给了很多建议,于是整理了一下。孔子曰:“你知道茴香豆的茴字有几种写法吗?”

    第一种,平常的写法:

    public class App {
    
        public static void main( String[] args ) {
            Set<String> set = new HashSet<>();
            set.add("20180101");
            set.add("20180102");
            set.add("20180103");
            set.add("20180104");
            set.add("20180105");
    
            Set<String> sortSet = new TreeSet<String>(new Comparator<String>() {
                @Override
                public int compare(String o1, String o2) {
                    return o2.compareTo(o1);//降序排列
                }
            });
            sortSet.addAll(set);
            System.out.println(set.toString());
    
        }
    }

    第二种,lambda:

    public class App
    {
    
        public static void main( String[] args ) {
            Set<String> set = new HashSet<>();
            set.add("20180101");
            set.add("20180102");
            set.add("20180103");
            set.add("20180104");
            set.add("20180105");
    
            Set<String> sortSet = new TreeSet<String>((o1, o2) -> o2.compareTo(o1));
            sortSet.addAll(set);
            System.out.println(set.toString());
    
        }
    }
    

    第三种:

    public class App
    {
    
        public static void main( String[] args ) {
            Set<String> set = new HashSet<>();
            set.add("20180101");
            set.add("20180102");
            set.add("20180103");
            set.add("20180104");
            set.add("20180105");
    
            Set<String> sortSet = new TreeSet<String>(Comparator.reverseOrder());
            sortSet.addAll(set);
            System.out.println(set.toString());
    
        }
    }

    第四种:java8流的方式:

    public class App
    {
    
        public static void main( String[] args ) {
            Set<String> set = new HashSet<>();
            set.add("20180101");
            set.add("20180102");
            set.add("20180103");
            set.add("20180104");
            set.add("20180105");
            
            set.stream().sorted(Comparator.reverseOrder());
            System.out.println(set.toString());
    
        }
    }

    补充,TreeMap倒序:

    因为TreeMap是有序的,所以可以直接放进TreeMap的Key中,其实set本身也是以HashMap的key作为容器,倒序的话有两种方法。

  • 相关阅读:
    正则表达式(Python3-re模块示例)
    format函数之几种常规用法
    元组的拆包
    Python3魔术方法实现一摞卡牌
    Python字典的常见操作
    70. Climbing Stairs(js)
    69. Sqrt(x)(js)
    68. Text Justification(js)
    67. Add Binary(js)
    66. Plus One(js)
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054105.html
Copyright © 2020-2023  润新知