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


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());


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM