首页 > 编程语言 > JAVA8-Lambda-(sorted+Comparator)排序

JAVA8-Lambda-(sorted+Comparator)排序

时间:2022-11-05 16:59:10浏览次数:42  
标签:addr Comparator People list height Student sorted JAVA8 name

使用场景:排队的时候按照个子大小排队

使用API



排序和MySql中的升序降序规则一样。

在排序时需要注意的是降序需要用到reversed();

    public static void main(String[] args) {
        ArrayList<People> list = new ArrayList<>();
        list.add(new People("张三", 191, "杭州"));
        list.add(new People("李四", 182, "海口"));
        list.add(new People("王五", 173, "西安"));
        list.add(new People("赵六", 162, "兰州"));
        list.add(new People("二狗", 111, "杭州"));
        list.add(new People("铁柱", 171, "海口"));

        //按照身高排序(升序)
        List<People> PeopleAscList = list.stream()
                .sorted(Comparator.comparing(People::getHeight))
                .collect(Collectors.toList());
        System.out.println("按照身高排序(升序):" + PeopleAscList);

        //按照身高排序(降序)
        List<People> PeopleDescList = list.stream()
                .sorted(Comparator.comparing(People::getHeight).reversed())
                .collect(Collectors.toList());
        System.out.println("按照身高排序(降序):" + PeopleDescList);
    }

输出结果:

按照身高排序(升序):[Student{name='二狗', height=111, addr='杭州'}, Student{name='赵六', height=162, addr='兰州'}, Student{name='铁柱', height=171, addr='海口'}, Student{name='王五', height=173, addr='西安'}, Student{name='李四', height=182, addr='海口'}, Student{name='张三', height=191, addr='杭州'}]

按照身高排序(降序):[Student{name='张三', height=191, addr='杭州'}, Student{name='李四', height=182, addr='海口'}, Student{name='王五', height=173, addr='西安'}, Student{name='铁柱', height=171, addr='海口'}, Student{name='赵六', height=162, addr='兰州'}, Student{name='二狗', height=111, addr='杭州'}]

标签:addr,Comparator,People,list,height,Student,sorted,JAVA8,name
From: https://www.cnblogs.com/CodeLuckly/p/16860543.html

相关文章

  • IDEA java8_API 中文提示
    在IDEA中,鼠标划到类上,提示的大段英文,总是不太好理解,如果直接显示英文就不用再翻译了。1.首先,从网上下载java8的中文api文档,chm格式;2.然后解包,获得html文件,命令......
  • JAVA8-Lambda-forEach遍历List/Map
    一、遍历List代码示例publicstaticvoidmain(String[]args){List<String>list=Arrays.asList("北","上","广","深");list.forEach(System.out::prin......
  • JAVA8-Lambda-Filter过滤
    我们通常会将一个集合中不符合条件的对象过滤掉,只保留我们需要的对象。代码示例:publicstaticvoidmain(String[]args){ArrayList<Student>list=newArrayL......
  • JAVA8-Lambda-List转Map
    List转Map需要注意点是在收集map时Collectors.toMap()建议选三个入参的方法。示例如下:(注意list中的“张三”有两个我们将其作为Map的key)####无第三个参数示例pu......
  • Redis Desktop Manager连不上服务器的redis; Java 死锁; 泛型; 事务; servlet; Spring事务;
    RedisDesktopManager连不上服务器的redis1、首先有没有设置密码,输入的密码是否正确2、那个IP是内网IP嘛?外网的要加SSH总结一下无论是连MySQL、MongoDB、还是redisip如果......
  • Comparable接口与Comparator
    Comparable接口1.接口packagecom.ygl.strategy;publicinterfaceComparable{publicintcompareTo(Objecto);}2.Cat类实现Comparable接口,并重写compareTo方法pack......
  • java8 函数式编程实现策略模式
    代码如下: /***java8函数式编程实现策略模式**@date2022/11/4*/publicclassFunctionStrategy{privatestaticMap<String,Function<String,Str......
  • java8函数式接口 生产者和消费者
    /***函数式接口*@paramsupplier要去做什么事情get获取到做的事情的返回值*/publicstaticvoidsupplierTest(Supplier<Integer>supplie......
  • Java8学习笔记
    Java8引入函数式编程,好处:代码简洁,意图明确,使用stream接口而不是for循环。多核友好,parallel()方法。相关知识高阶函数高阶函数就是接收函数参数的函数,能够根据传入的函数参......
  • sort和sorted区别
    描述sort与sorted区别: sort是应用在list上的方法,属于列表的成员方法,sorted可以对所有可迭代的对象进行排序操作。list的sort方法返回的是对已经存在的列......