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

  • 相关阅读:
    基础算法(C#)
    Mac系统Docker安装Redis
    Mac系统Docker安装jenkins
    设计模式-缓存驻留模式
    设计模式列表
    vs问题---...inDebugJns.Gaea.dll”标记为系统必备组件,必须对其进行强签名。
    vs问题--------------标记为系统必备组建
    Excel--------Excel实现数据对比
    IIS--------问题解决(.net开发中localhost可以访问,本地ip不可以)
    .NET--------枚举扩展方法(枚举转list,获取枚举描述)
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054105.html
Copyright © 2011-2022 走看看