Java实现List的几种排序方式

本文详细介绍了Java中对List进行排序的三种方法:使用list的sort方法、Java7的Collections.sort配合Comparator以及Java8的lambda表达式简化排序。通过实例代码展示了正序和倒序的实现,适合Java初学者及进阶者学习。

实践出真知,相信你能看明白~

/**
 * @Author: peter
 * @Date: 11:58 下午 2020/12/10
 * @Description:
 */
public class Test3 {
    public static void main(String[] args) throws Exception {
        List<Integer> list = new ArrayList<>(Arrays.asList(12, 3, 14, 4, 6, 3));
        sortByJava1(list);
        sortByJava2(list);
        sortByJava3(list);
    }

    /**
     * 排序方式1
     * 使用list的sort方法
     */
    static void sortByJava1(List<Integer> list) {
        list.sort(Comparator.naturalOrder());//正序
//        list.sort(Comparator.reverseOrder());//倒序
        System.out.println(list);
    }

 // 简单的int类似数据,也可以使用Collections的sort方法即可完成排序
  Collections.sort(list);

    /**
     * 排序方式2-Java7的方式
     * Collections.sort
     */
    static void sortByJava2(List<Integer> list) {
        Collections.sort(list, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1.compareTo(o2);//正序、倒序o2.compareTo(o1);
            }
        });
        System.out.println(list);//[3, 3, 4, 6, 12, 14]
    }
//匿名内部类、重新compareTo方式
     Collections.sort(approvalEntities,new Comparator<EworkApprovalEntity>()
    {
        @Override
        public int compare (EworkApprovalEntity o1, EworkApprovalEntity o2){
        return (o2.getCreateTime().getTime() - o1.getCreateTime().getTime()) >= 0 ? 1 : -1;
    }
    });

    /**
     * 排序方式2-Java8的方式
     * Collections.sort
     */
    static void sortByJava3(List<Integer> list) {
//        Collections.sort(list);//数值类型排序 ;[3, 3, 4, 6, 12, 14]
        Collections.sort(list, (s1, s2) -> s2.compareTo(s1));//适用于对象实体的某一个对象进行排序;倒序[14, 12, 6, 4, 3, 3]
        System.out.println(list);
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漁陽

彼此共勉,砥砺前行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值