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