需求:tartgetList 需按照另一个 list 里的数据的顺序排序。

public class ListOrder {public static void main(String[] args) {List<String> list = Arrays.asList("B2C", "O2O", "A");List<User> targetList = new ArrayList<User>();User user1 = new User();user1.setId("1");user1.setName("B2C");user1.setAge(10);User user2 = new User();user2.setId("2");user2.setName("O2O");user2.setAge(18);User user3 = new User();user3.setId("3");user3.setName("A");user3.setAge(38);User user4 = new User();user4.setId("4");user4.setName("AA");user4.setAge(50);targetList.add(user1);targetList.add(user2);targetList.add(user3);targetList.add(user4);System.out.println("排列前的数据:");targetList.forEach(t -> System.out.print(t.getName() + "~" + t.getAge() + "  "));System.out.println();// 排序setListOrder(list, targetList);System.out.println("排序的规则:");list.forEach(t -> System.out.print(t + " "));System.out.println();System.out.println("排列后的数据:");targetList.forEach(t -> System.out.print(t.getName() + "~" + t.getAge() + " "));}
public static void setListOrder(List<String> orderRegulation, List<FruitLongAnChannelAndGrandRespVo> targetList) {// 按照 list 里的 name 来排序 targetListCollections.sort(targetList, ((o1, o2) -> {int io1 = orderRegulation.indexOf(o1.getName());int io2 = orderRegulation.indexOf(o2.getName());if (io1 != -1) {io1 = targetList.size() - io1;}if (io2 != -1) {io2 = targetList.size() - io2;}return io2 - io1;}));}

注意:
该排序适用于数据内容一致(类型一致),顺序不相同的情况。 targetList中多出来的数据,排在新的List数组的最后。

【Java】一个List按照另一个List的数据顺序来排序相关推荐

  1. Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几

    Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...

  2. java 1000个线程_java,一个程序建立1000个线程,每一个线程加1到一个变量sum。

    1.程序建立1000个线程,有可能造成系统创建大量线程而导致消耗完系统内存,还会增加创建和销毁线程上所花的时间以及系统资源的开销 2.在创建线程数多的情况下,可以考虑使用线程池 以下是Java自带的几 ...

  3. 将Java程序变成可执行文件的一个简单方法

    将Java程序变成可执行文件的一个简单方法 运行Java程序(SWING或SWT的桌面程序)可以直接执行.class文件或将所有的.class文件及相关的其他文件压缩成.jar文件,然后使用javaw ...

  4. 《JAVA练习题目9》 创建一个Person类和一个Family类。(这次的OJ实在写的没有状态,被样例搞崩了,这次代码还有好多代码复制等一系列不良现象,就是为了过OJ写的。。大家凑活看一下吧)

    题目内容: 创建一个Person类和一个Family类.其中, Person类包含编号id(整型).名字name(字符串).性别gender(字符串)三个属性,和一个初始化对象所有属性的有参构造方法, ...

  5. java.io,PrintWriter可以用来创建一个文件并向本文文件写入数据

    java.io,PrintWriter可以用来创建一个文件并向本文文件写入数据 PrintWriter(String filename); PrintWriter(File file);<!-- ...

  6. 一个http请求就是一个线程吗,java的服务是每收到一个请求就新开一个线程来处理吗...

    一个http请求就是一个线程吗,java的服务是每收到一个请求就新开一个线程来处理吗 答案是:是,一个http请求,就是一个线程. https://blog.csdn.net/elvis_lfc/ar ...

  7. Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt(100)方法显示0到100之间的前50个随机整数

    Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt方法显示0到100之间的前50个随机整数 题目 赘述 代码 题目 ...

  8. Java黑皮书课后题第8章:*8.23(游戏:找到翻转的单元格)假定给定一个填满0和1的6*6矩阵,所有的行和列都有偶数个1。让用户翻转一个单元,编写一个程序找到哪个单元格被翻转了

    *8.23(游戏:找到翻转的单元格)假定给定一个填满0和1的6*6矩阵,所有的行和列都有偶数个1.让用户翻转一个单元,编写一个程序找到哪个单元格被翻转了 题目 题目描述与运行示例 破题 代码 题目 题 ...

  9. Java黑皮书课后题第8章:*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和。编写一个程序,读取一个4*4的矩阵,显示主对角线和

    *8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和.编写一个程序,读取一个4*4的矩阵,显示主对角线和 题目 题目描述与运行示例 破题 ...

最新文章

  1. 2012是团购移动电商年
  2. linux 命令常驻,Linux下任务调度的crond常驻命令
  3. php pdo预处理语句与存储过程
  4. 《剑指offer》给定一颗二叉搜索树,请找出其中的第k大的结点。
  5. 程序人生:给程序员的18个建议
  6. 基于主机的入侵检测优缺点_如何建立我们的网络防线?入侵检测,确保我们的网络安全...
  7. 水冒泡了几度_冒泡和选择排序详解
  8. python编程(mysql操作)
  9. TensorFlow总结(2020版)
  10. Calendar 日历类的时间操作
  11. 1011 A+B 和 C (15 分)—PAT (Basic Level) Practice (中文)
  12. 关于以主机命名的网站集
  13. Real-time Rendering (3rd edition)学习笔记第4章
  14. 欧盟要求谷歌美国站点也要执行“被遗忘权”
  15. CentOS下安装cups实现局域网共享HP1020打印机
  16. 成为Java顶尖程序员 ,看这9本书就够了
  17. NER命名实体识别,基于数据是字典的形式怎么识别
  18. 【opencv/videoio module】(一)Video Input with OpenCV and similarity measurement
  19. GParted图文磁盘分区教程
  20. 乐高小颗粒零件清单 大全

热门文章

  1. 压缩的问题-----WriteUp
  2. html标签之常用标签
  3. hdu 1710 Binary Tree Traversals (二叉树)
  4. PHP-Java-Bridge使用笔记
  5. GoogleProgressBar
  6. 开源.Net邮件服务器-LumiSoft Mail Server简介
  7. web报表工具finereport常用函数的用法总结(数组函数)
  8. 职称计算机xp系统试题,2020年职称计算机WindowsXP测试题及答案.doc
  9. 交互式多模型_体系化教学资源上新——小学数学交互式教学工具
  10. 冯诺依曼体系下 计算机主机不包括,计算机组装第一张测试