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作为容器,倒序的话有两种方法。

  • 相关阅读:
    sqlserver2005系统表、视图研究2
    SQLServer2005新分页方法
    应该多了解一些工具
    关于SQLServer的小技巧
    EasyUI DataGrid使用Json加载不了数据
    js跨域及解决方案
    关于Master Page的css和js文件引用问题
    嵌套母版页
    SSMS获取存储过程中的返回值和output值
    静态构造函数
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054105.html
Copyright © 2011-2022 走看看