大數據開發和java開發哪個好,【Java】一個List按照另一個List的數據順序來排序

 2023-10-21 阅读 24 评论 0

摘要:需求:tartgetList 需按照另一個 list 里的數據的順序排序。 public class ListOrder {public static void main(String[] args) {List<String> list = Arrays.asList("B2C", "O2O", "A");List<User> targetList = new Arr

需求: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數組的最后。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/153873.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息