JAVA Stream 排序汇总Demo,最大值,最小值,正序和倒序

利用Java Stream排序 ,以及倒序,获取排序的最大值,最小值,建议使用排序12345和9,10,11

public static void main(String[] args) {
        FormOutcome formOutcome = new FormOutcome();
        formOutcome.setId("sdfsdf");
        formOutcome.setName("sdfsdf");
        FormOutcome formOutcome1 = new FormOutcome();
        formOutcome1.setId("sdfsdf1");
        formOutcome1.setName("sdfsdf1");
        FormOutcome formOutcome3 = new FormOutcome();
        formOutcome3.setId("sdfsdf3");
        formOutcome3.setName("sdfsdf3");
        FormOutcome formOutcome2 = new FormOutcome();
        formOutcome2.setId("sdfsdf2");
        formOutcome2.setName("sdfsdf2");
        List<FormOutcome> formOutcomeDTOList = new ArrayList<>(Arrays.asList(formOutcome,formOutcome1,formOutcome2,formOutcome3));
        //排序1
        Collections.sort(formOutcomeDTOList, new Comparator<FormOutcome>() {
            @Override
            public int compare(FormOutcome o1, FormOutcome o2) {
                return o1.getName().compareTo(o2.getName());
            }
        });
        System.out.println("排序1:"+formOutcomeDTOList);


        //排序2
        List<FormOutcome> historyDto2 = formOutcomeDTOList.stream().sorted(Comparator.comparing(FormOutcome::getName)).collect(Collectors.toList());
        System.out.println("排序2,正序:"+historyDto2);
        //排序3,倒序
        List<FormOutcome> historyDto3 = formOutcomeDTOList.stream().sorted(Comparator.comparing(FormOutcome::getName).reversed()).collect(Collectors.toList());
        System.out.println("排序3,倒序:"+historyDto3);

        //排序4,正序 第一个
        List<FormOutcome> historyDto4 = formOutcomeDTOList.stream().sorted(Comparator.comparing(FormOutcome::getName)).limit(1).collect(Collectors.toList());
        System.out.println("排序4,正序第一个:"+historyDto4);

        //排序5 ,倒序 第一个
        List<FormOutcome> historyDto5 = formOutcomeDTOList.stream().sorted(Comparator.comparing(FormOutcome::getName).reversed()).limit(1).collect(Collectors.toList());
        System.out.println("排序5,倒序第一个:"+historyDto5);
        //排序6
        List<FormOutcome> historyDto6 = formOutcomeDTOList.stream().sorted((FormOutcome o1, FormOutcome o2) -> {return o1.getName().compareTo(o2.getName());}).collect(Collectors.toList());
        System.out.println("排序6:"+historyDto6);
        //排序7
        List<FormOutcome> historyDto7 = formOutcomeDTOList.stream().sorted((o1, o2) -> {return o1.getName().compareTo(o2.getName());}).collect(Collectors.toList());
        System.out.println("排序7:"+historyDto7);
        //排序8
        List<FormOutcome> historyDto8 = formOutcomeDTOList.stream().sorted((o1, o2) -> o1.getName().compareTo(o2.getName())).collect(Collectors.toList());
        System.out.println("排序8:"+historyDto8);
        //排序9, 最大值
        Optional<FormOutcome> historyDto9 = formOutcomeDTOList.stream().max((o1, o2) -> o1.getName().compareTo(o2.getName()));
        System.out.println("排序9,max:"+historyDto9);
        //排序10, 最大值
        Optional<FormOutcome> historyDto10 = formOutcomeDTOList.stream().max(Comparator.comparing(FormOutcome::getName));
        System.out.println("排序10,max:"+historyDto10);
        //排序11,最小值
        Optional<FormOutcome> historyDto11 = formOutcomeDTOList.stream().min(Comparator.comparing(FormOutcome::getName));
        System.out.println("排序11,min:"+historyDto11);
    }

 其中,FormOutcome.java 如下:

@Data
public class FormOutcome {

    private String id;

    private String name;

}

执行结果如下: 


排序1:[FormOutcome(id=sdfsdf, name=sdfsdf), FormOutcome(id=sdfsdf1, name=sdfsdf1), FormOutcome(id=sdfsdf2, name=sdfsdf2), FormOutcome(id=sdfsdf3, name=sdfsdf3)]
排序2,正序:[FormOutcome(id=sdfsdf, name=sdfsdf), FormOutcome(id=sdfsdf1, name=sdfsdf1), FormOutcome(id=sdfsdf2, name=sdfsdf2), FormOutcome(id=sdfsdf3, name=sdfsdf3)]
排序3,倒序:[FormOutcome(id=sdfsdf3, name=sdfsdf3), FormOutcome(id=sdfsdf2, name=sdfsdf2), FormOutcome(id=sdfsdf1, name=sdfsdf1), FormOutcome(id=sdfsdf, name=sdfsdf)]
排序4,正序第一个:[FormOutcome(id=sdfsdf, name=sdfsdf)]
排序5,倒序第一个:[FormOutcome(id=sdfsdf3, name=sdfsdf3)]
排序6:[FormOutcome(id=sdfsdf, name=sdfsdf), FormOutcome(id=sdfsdf1, name=sdfsdf1), FormOutcome(id=sdfsdf2, name=sdfsdf2), FormOutcome(id=sdfsdf3, name=sdfsdf3)]
排序7:[FormOutcome(id=sdfsdf, name=sdfsdf), FormOutcome(id=sdfsdf1, name=sdfsdf1), FormOutcome(id=sdfsdf2, name=sdfsdf2), FormOutcome(id=sdfsdf3, name=sdfsdf3)]
排序8:[FormOutcome(id=sdfsdf, name=sdfsdf), FormOutcome(id=sdfsdf1, name=sdfsdf1), FormOutcome(id=sdfsdf2, name=sdfsdf2), FormOutcome(id=sdfsdf3, name=sdfsdf3)]
排序9,max:Optional[FormOutcome(id=sdfsdf3, name=sdfsdf3)]
排序10,max:Optional[FormOutcome(id=sdfsdf3, name=sdfsdf3)]
排序11,min:Optional[FormOutcome(id=sdfsdf, name=sdfsdf)]

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

飞翔的咩咩

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值