zoukankan      html  css  js  c++  java
  • 【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作为容器,倒序的话有两种方法。

  • 相关阅读:
    supervisor 简单使用
    golang的表格驱动测试
    golang和python的二进制转换
    django-rest-framework-jwt的使用
    threading.local在flask中的用法
    分布式的两种算法
    第24课
    Mock以及Mockito的使用
    java下使用chromedriver获取访问页面状态码
    Mockito:一个强大的用于Java开发的模拟测试框架
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054105.html
Copyright © 2011-2022 走看看