List的各种排序

目录

Collections.sort对list进行排序

对象中某个属性进行排序

通过比较器进行比较

JAVA8特性Stream流进行排序

Stream升降序组合使用


Collections.sort对list进行排序

java 复制代码
public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(3);
        list.add(1);
        list.add(2);

        Collections.sort(list);
        for (Integer integer : list) {
            System.out.println(integer);
        }
    }

public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("d");
        list.add("c");
        list.add("b");
        Collections.sort(list);
        for (String integer : list) {
            System.out.println(integer);
        }
    }

运行结果

对象中某个属性进行排序

java 复制代码
//升序
list.sort(Comparator.comparing(User::getName));
//降序
list.sort(Comparator.comparing(User::getName).reversed());

运行结果

通过比较器进行比较

java 复制代码
//升序降级通过改变其中的参数确定
Collections.sort(list, new Comparator<User>(){
            @Override
            public int compare(User stu1, User stu2) {
                // TODO Auto-generated method stub

                return stu2.getName().compareTo(stu1.getName());
            }

        });

运行结果

JAVA8特性Stream流进行排序

java 复制代码
//升序
List<User> collect = list.stream().sorted(Comparator.comparing(User::getName))
.collect(Collectors.toList());

//降序
List<User> collect = list.stream().sorted(Comparator.comparing(User::getName).reversed())
.collect(Collectors.toList());

Stream升降序组合使用

java 复制代码
//先按照年龄进行升序,然后按照姓名降序
        list.stream().sorted(Comparator.comparing(User::getAge).thenComparing(User::getName).reversed()).collect(Collectors.toList())
                .forEach(s->{
                    System.out.println(s.getName()+s.getAge());
                });

运行结果

相关推荐
Warren988 分钟前
软件测试-Selenium学习笔记
java·javascript·笔记·学习·selenium·测试工具·安全
秋难降11 分钟前
LRU缓存算法(最近最少使用算法)——工业界缓存淘汰策略的 “默认选择”
数据结构·python·算法
没有bug.的程序员34 分钟前
JVM 运行时数据区详解:内存模型与对象生命周期全景解析
java·jvm·运行时数据区·内存模型·对象生命周期
一语长情1 小时前
Netty流量整形:保障微服务通信稳定性的关键策略
java·后端·架构
盖世英雄酱581361 小时前
第一个RAG项目遇到的问题
java·spring boot
最初的↘那颗心1 小时前
Flink Stream API - 源码开发需求描述
java·大数据·hadoop·flink·实时计算
华仔啊2 小时前
别学23种了!Java项目中最常用的6个设计模式,附案例
java·后端·设计模式
在路上`2 小时前
前端学习之后端小白java的一些理论知识(框架)
java·学习
练习时长两年半的Java练习生(升级中)2 小时前
从0开始学习Java+AI知识点总结-18.web基础知识(Java操作数据库)
java·学习·web
Jayyih2 小时前
嵌入式系统学习Day19(数据结构)
数据结构·学习