Java8流处理正序倒序排序
文章目录
- 1 问题背景
- 2 分析
- 3 实现
- 3.1 单字段排序
- 3.2 多字段级联排序
1 问题背景
场景是电商查询优惠活动的活动列表,有8种活动。针对搭售类型的活动按照状态正序、优先级倒叙来排序。其余类型的优惠活动按照创建时间倒叙排序。
2 分析
考虑到只有8种活动中只有1种活动需要特殊的排序规则,那么就不在sql处书写控制搭售活动的排序代码,sql处默认使用大部分活动的排序规则——按时间倒叙,而搭售活动的排序在java代码层面控制,笔者使用Java8流技术来处理排序。
3 实现
3.1 单字段排序
按照status正序排序,按照status倒序排序
// 从数据库列表查询
List<DiscountDTO> discountList = discountMapper.listDiscount();
// 按照status正序排序
discountList.stream().sorted(Comparator.comparing(DiscountDTO::getStatus));
// 按照status倒序排序
discountList.stream()
.sorted(Comparator.comparing(DiscountDTO::getStatus, (val1, val2) -> val2 - val1));
3.2 多字段级联排序
按照status正序、sequence倒序
// 按照status正序、sequence倒序
discountList
.stream()
.sorted(Comparator.comparing(DiscountDTO::getStatus).thenComparing(DiscountDTO::getSequence, (val1, val2) -> val2 - val1));
Java8流处理正序倒序排序相关推荐
- java 正序a~z_java 策略模式,list集合,实现id 姓名年龄正序倒序排序(如果年龄或者姓名重复,按id正序排序)...
策略模式:1.抽象策略类,通常由一个接口或者抽象类实现. 2.具体实现类 3.环境角色类,持有一个策略类的引用,最终给客户端调用. 好了,上代码: package execrise; import j ...
- java8: sorted()之正序倒序
Java 8 Stream sorted()示例 下面代码以自然序排序一个list list.stream().sorted() 自然序逆序元素,使用Comparator 提供的reverseOrde ...
- js数组排序,数组按照某个字段正序倒序排序方法,sort()
话不多说直接看案例哈 比如后端返回了一个数组集合,需要吧默认选项放在第一条 let arr = [{isDefault: 0},{isDefault: 0},{isDefault: 1},{isDef ...
- Comparable和Comparator接口的区别及Collections.sort排序(正序倒序排序是重点!!)
1. Comparator 和 Comparable 相同的地方 都是java的一个接口, 并且是用来对自定义的class比较大小的 其中什么是"自定义class": 如 publ ...
- 数据按照时间正序倒序排序以及数据反转
1.在日常开发中这一场景我们会经常遇到,但是前端一般都是从接口中获取的,后端一般都帮我们拍好顺序了(感谢后端开发人员),但是我们可能会遇到后端已经排过顺序了,我们把符合要求的数据的时间给改了,这时候我 ...
- stream流倒序排序_java8 stream 操作map根据key或者value排序的实现|chu
引言 最近小编自己一个人在负责一个项目的后台开发,其中有一部分是统计相关的功能,所以需要一些排序或者分组的操作,之前这种操作小编觉得还是比较麻烦的,虽热有一些现成的工具类,但是工具类的写法也是比较复杂 ...
- pandas使用sort_values函数对dataframe的日期数据列进行排序(设置ascending参数进行正序或者倒序排序)
pandas使用sort_values函数对dataframe的日期数据列进行排序(设置ascending参数进行正序或者倒序排序) 目录
- Axhub Charts学习记录贴-条形图添加正序排序/倒序排序功能
axure中添加条形图与两个按钮,为方便操作,为按钮分别命名为"正序排序""倒序排序" 为按钮添加单击交互事件,选择"更新行",目标对象选择 ...
- mysql 2008降序排列,sql倒序排序语句
sql中的排序,如何使用倒序 sql中的排序使用倒序的步骤如下: 我们需要准备的材料分别是:电脑.sql查询器. 1.首先,打开sql查询器,连接上相应的数据库表,例如test表,以score字段倒序 ...
最新文章
- mybatis之trim prefix= suffix= suffixOverrides= prefixOverrides=/trim
- 带你玩转七牛云存储——高级篇
- 今日拷问:侬是什么垃圾!
- WSDL文件生成Java代码
- 网络工程师专用linux,软考网络工程师考点精讲之Linux系统
- 基于Matlab/simulink的转速电流双闭环直流调速系统的仿真
- lpt监控安装_LPT说明书
- 学计算机导论的感悟,学习《计算机导论》后的感想
- vs code 的常用快捷键列表
- Android 使用高德SDK编写周边搜索定位
- ad7606与stm32连接电路介绍
- 【概率论】贝叶斯法则
- EleutherAI GPT-Neo: 穷人的希望
- 无人车路径规划算法---(4)基于搜索的路径规划算法 II(贪心/Astar)
- C#加壳工具做代码加密保护
- 2020年9月19日 晴
- 用java做小学数学系统_基于jsp的小学数学试卷生成-JavaEE实现小学数学试卷生成 - java项目源码...
- TJA1051T/1参数
- Maven Dependency设置,详解! 1
- 【JAVASCRIPT】jquery实现图片笼罩效果