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

  • 相关阅读:
    angular11源码探索七[服务二]
    angular11源码探索六[服务基础一]
    有趣的特效,嘤嘤嘤
    angular11学习(十八)
    matplotlib 去掉小方框
    xlrd.biffh.XLRDError 问题报错
    页面点击出现蓝色背景色
    移动端不显示滚动条
    Swiper垂直方向滑动,高度获取不正确的解决方法
    二维树状数组
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054105.html
Copyright © 2011-2022 走看看