首页 > 编程语言 > 详细

lambda表达式——sort和compare进行高级排序

时间:2021-04-29 18:05:22      阅读:20      评论:0      收藏:0      [点我收藏+]

lambda表达式中的sorted和Comparator实现多种方式排序

1.倒序排序

2.先后顺序排序

3.自定义排序规则

代码如下

List<Trade> sorted 
                = trades.stream()
                .sorted(
                        Comparator
                                // 首先按照价格排序
                                .comparing(
                                        Trade::getPrice,
                                        // TODO 进行排序调整,将自然排序翻转
                                        Comparator.reverseOrder())

                                // 时间先后进行排序,自然排序
                                .thenComparing(Trade::getTime)

                                // 交易量排序,自然排序翻转
                                .thenComparing(
                                        Trade::getCount,
                                        Comparator.reverseOrder())

                                // 自定义排序规则
                                .thenComparing(
                                        // 要排序的字段值
                                        Trade::getType,

                                        // 自定义排序规则
                                        (type1, type2) -> {
                                            if ("机构".equals(type1) && "个人".equals(type2)) {
                                                // -1:type1在先, type2在后
                                                return -1;
                                            } else if ("个人".equals(type1) && "机构".equals(type2)) {
                                                return 1;
                                            } else {
                                                return 0;
                                            }
                                        }))
                .collect(Collectors.toList());

lambda表达式——sort和compare进行高级排序

原文:https://www.cnblogs.com/xiaodou00/p/14718417.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!