java8使用Lambda表达式比较器Comparator给List对象排序,按时间、数字、字典排序

使用lambda给list对象排序示例

效果:
示例图
代码:

package com.alexli.test;

import com.alexli.codetemplate.util.DateUtil;
import com.alexli.entity.Message;

import java.util.ArrayList;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        List<Message> msgList = new ArrayList<>();
        msgList.add(new Message(1, "A", DateUtil.fmtStrToDate("2019-03-16 18:05:10")));
        msgList.add(new Message(4, "D", DateUtil.fmtStrToDate("2019-03-16 18:05:40")));
        msgList.add(new Message(3, "C", DateUtil.fmtStrToDate("2019-03-16 18:05:30")));
        msgList.add(new Message(2, "B", DateUtil.fmtStrToDate("2019-03-16 18:05:20")));

        //发送时间正序排序
        msgList.sort((Message m1, Message m2) -> m1.getSendDate().compareTo(m2.getSendDate()));
        System.out.println("按消息发送时间正序排序:");
        for (Message message : msgList) {
            System.out.println(message.toString());
        }

        //消息ID倒序排序
        msgList.sort((Message m1, Message m2) -> m1.getId().compareTo(m2.getId()));
        System.out.println("\n按消息ID倒序排序:");
        for (Message message : msgList) {
            System.out.println(message.toString());
        }

        //消息内容字典倒序排序
        msgList.sort((Message m1, Message m2) -> m2.getMsg().compareTo(m1.getMsg()));
        System.out.println("\n按消息内容字典倒序排序:");
        for (Message message : msgList) {
            System.out.println(message.toString());
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值