java用Comparator.comparing自定义排序规则,根据业务逻辑排序
直接上代码:

public static void main(String[] args) {/*** 根据业务 空闲中->忙碌中->离线中  排序* @param list 排序前的前端需要的数据* @return resultList 返回排序后的*/PaiXu paiXu1 = new PaiXu("离线中", "1");PaiXu paiXu2 = new PaiXu("空闲中", "2");PaiXu paiXu3 = new PaiXu("空闲中","3");PaiXu paiXu4 = new PaiXu("忙碌中","4");PaiXu paiXu5 = new PaiXu("","5");PaiXu paiXu6 = new PaiXu("","6");PaiXu paiXu7 = new PaiXu("空闲中","7");PaiXu paiXu8 = new PaiXu("离线中","8");List<PaiXu> list = Arrays.asList(paiXu1, paiXu2, paiXu3, paiXu4, paiXu5, paiXu6, paiXu7, paiXu8);List<PaiXu> resultList = new LinkedList<>(); //用来存放新的排好序的数据//根据业务规则 排序List<String> sortList =  Arrays.asList("空闲中","忙碌中","离线中");list.stream().sorted(Comparator.comparing(PaiXu::getWorkStatusName,(x, y)->{if(x == null && y != null){return 1;}else if(x !=null && y == null){return -1;}else if(x == null && y == null){return 0;}else{//按照读取的list顺序排序for(String sort : sortList){if(sort.equals(x) || sort.equals(y)){if(x.equals(y)){return 0;}else if(sort.equals(x)){return -1;}else{return 1;}}}return 0;}})).collect(Collectors.toList()).forEach(x->{PaiXu paiXu = new PaiXu();BeanUtils.copyProperties(x,paiXu);resultList.add(paiXu);});resultList.forEach(e-> System.out.println(e));}```
加油奥利给

java根据业务排序利用Comparator.comparing自定义排序规则相关推荐

  1. JAVA ArrayList利用Comparator实现自定义排序

    先说遇到的问题吧,,,ArrayList<String>  里面存放的本地文件路径,然后通过这个路径找到文件,按照文件的最后修改时间排序,,,,提起来没啥问题的,.,,当时写的代码这样的: ...

  2. python3 自定义排序_Python3中的自定义排序

    我开始学习python3. 我想知道如何执行自定义排序.例如,我可能希望按照以下方式对动物列表进行排序:先按字符升序排序,然后按长度降序排序,然后按字母数字升序排序.在 一个由"蚂蚁&quo ...

  3. java list 默认排序_List集合排序(默认及自定义排序)

    一.java提供的默认list排序方法 主要代码: List list = new ArrayList(); list.add("王硕"); list.add("刘媛媛& ...

  4. java学习(122):treeset自定义排序

    //自定义排序 import java.util.*; public class test62 {public static void main(String[] args){TreeSet tree ...

  5. Java 8 新特性:Comparator.naturalOrder | 自然排序

    点击关注公众号,实用技术文章及时了解 来源:moonce.blog.csdn.net/article/ details/120324130 naturalOrder是比较器功能接口的静态方法. Jav ...

  6. 【289期】Java 8 新特性:Comparator.naturalOrder | 自然排序

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每一天进步一点点,是成功的开始... natur ...

  7. java util包排序,利用stream sorted进行降序排序

    根据value值的大小进行降序排序,并进行截取. public static void main(String[] args) { List> list = Lists.newArrayList ...

  8. Java Set接口详细讲解 TreeSet的定制排序和自然排序

    Set接口概述 Set接口是Collection的子接口,set接口没有提供额外的方法 Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个Set 集合中,则添加操作失败. Set 判断 ...

  9. Spark自定义排序

    1 当rdd是键值对的时候可以使用sortByKey进行排序,按照key进行排序,可以指定升序和降序 2 sortBy自定义字段进行排序 3 还可以在自定义类型时,继承Ordered,重写方法进行排序 ...

  10. 力学笃行系列之List自定义排序

    问题场景 公司业务需求,从数据库中返回一个List对象,List中存储的map对象,要求对List进行排序.可以通过重写Comparator接口,实现对List的自定义排序. 问题描述 List中存储 ...

最新文章

  1. R语言包_plotly
  2. linux小白-基础命令-useradd
  3. matlab结课论文_科研小班 | 加州大学伯克利分校 | 物理、电子工程:MATLAB信号和数据处理课题...
  4. 启动tomcat提示Could not create the Java virtual machine.
  5. Web service 超过了最大请求长度错误解决
  6. git 怎么查看合并过来哪些代码_git整理纷乱的历史合并记录
  7. python获取天气数据_python获取天气数据
  8. python判断不等_Python黑魔法笔记第六关:消灭该死的重复(下)
  9. 数据预处理—8.属性归约之主成分分析(理论及python实现)
  10. 035 浅谈WebGame
  11. python数据分析挖掘与可视化课件_python数据分析与可视化
  12. 基于asp.net固定资产管理系统设计
  13. matlab解方程 中det,matlab中det函数
  14. 史上最全的程序员常用英语词汇 建议收藏!
  15. HTML炫彩按钮,PS打造炫彩的开始图标按钮
  16. 计算机与模拟实验的论文,作业模拟论文,关于森林作业的计算机模拟相关参考文献资料-免费论文范文...
  17. PHP 图片木马隐写方法及靶机演示
  18. WCDMA通信技术-CFN SFN
  19. 关于Navicat连接mysql数据库报host XXXXXXX is not allowed to connect to this mysql server
  20. vue设置右边距_利用页面布局设置制作工资条(不用函数)

热门文章

  1. 重庆理工大学控制工程matlab大作业,(论文答辩)第六届校园数学建模知识竞赛决赛答辩会成功举行...
  2. 针对iPhone X和iPhone XS这些傻叉手机安全距离的设定
  3. 什么是Data Matrix二维码
  4. ps -ef|grep详解
  5. LiveData去除粘性
  6. 记录:图片转字符画及文字转字符画
  7. android 地图侧滑栏,Android封装侧滑菜单栏
  8. Java经典书籍推荐
  9. 洛谷P4238 多项式乘法逆元
  10. 你的格局决定你的结局