新手:java8 排序

public class Test {
    private Integer Id;
    private String Name;
    private Integer IdCard;

    public Integer getId() {
        return Id;
    }

    public void setId(Integer id) {
        Id = id;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public Integer getIdCard() {
        return IdCard;
    }

    public void setIdCard(Integer idCard) {
        IdCard = idCard;
    }
}

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test1 {
    public static void main(String[] args) {
        Test test1=new Test();
        test1.setId(5);
        test1.setName("张三");
        test1.setIdCard(55);
        Test test2=new Test();
        test2.setId(4);
        test2.setName("李四");
        test2.setIdCard(33);
        Test test3=new Test();
        test3.setId(5);
        test3.setName("王五");
        test3.setIdCard(77);
        Test test4=new Test();
        test4.setId(4);
        test4.setName("陈六");
        test4.setIdCard(11);
        List<Test> testList=new ArrayList<Test>();
        testList.add(test1);
        testList.add(test2);
        testList.add(test3);
        testList.add(test4);
        //Comparator提供的静态方法
        //升序
        Collections.sort(testList, Comparator.comparing(Test::getId));
        //降序
        Collections.sort(testList, Comparator.comparing(Test::getId).reversed());
        //两个字段排序及以上加上
        //id降序idCard降序thenComparing
        Collections.sort(testList, Comparator.comparing(Test::getId).reversed().thenComparing(Test::getIdCard));
        //默认两个都是升序
        Collections.sort(testList, Comparator.comparing(Test::getId).thenComparing(Test::getIdCard));
        //两个都是降序
        Collections.sort(testList, Comparator.comparing(Test::getId).thenComparing(Test::getIdCard).reversed());
        //lambda表达式
        //不带参数类型 括号里参数(参数A,参数B),排序是A在前面就是升序,B在前面就是降序
        testList.sort(( ord1,ord2) -> ord2.getId().compareTo(ord1.getId()));
        //带参数类型括号里参数(参数A,参数B),排序是A在前面就是升序,B在前面就是降序
        testList.sort(( Test ord1, Test ord2) -> ord2.getId().compareTo(ord1.getId()));
        //循环打印
        testList.stream().forEach(test -> System.out.println(test.getId()+"/" +test.getIdCard()+"/"+ test.getName()));
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值