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());
                });

运行结果

相关推荐
benbenAItalk4 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
sunshine22 girl4 小时前
Java学习二 基本语法2, 算术运算符
java·学习
niucloud-admin4 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_962885724 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
吞下星星的少年·-·4 小时前
The 2026 ICPC Asia East Continent Online Contest (II)(构造)
数据结构·算法
滕州市燕猫虎计算机科技工作室个体工商户4 小时前
Java锁
java·开发语言
shehuiyuelaiyuehao6 小时前
1计算机是如何工作的
java·计算机网络
letisgo57 小时前
JAVA 高级进阶07篇《@Transactional失效的8个场景:代理机制到传播行为》
java·面试·transactional·spring事务·aop动态代理
水域安全老周7 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
三8447 小时前
Java 模板注入(FreeMarker) · 02 · 模板引擎与 FreeMarker 语法
java·开发语言·web安全·freemarker