一个List对象,想把特定的值排在最前面进行处理
今天遇到一个需求,要把list中的某些特定的值排在最前面处理,所以就要对list进行排序,搜索了一下进行总结
首先对List<String> 根据特定的值进行排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | List<String> list = Arrays.asList( "apple" , "banana" , "cherry" , "date" , "sss" , "fig" ); List<String> specificValues = Arrays.asList( "fig" , "date" ); // 指定的特定值 list.sort((a, b) -> { if (specificValues.contains(a)) { // a在指定值列表中,应排在前面 return - 1 ; } else if (specificValues.contains(b)){ // b在指定值列表中,应排在前面 return 1 ; } else { // 其他情况保持不变 return 0 ; } }); System.out.println(list); |
然后对一个List对象根据特定的值进行排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 首先去写一个简单的类<br> @Data public static class Student{ private String name; private String orderNo; private int classNum; public Student(String name, String orderNo, int i) { this .name = name; this .orderNo = orderNo; this .classNum = classNum; } } 然后main方法进行验证 List<Student> studentList = new ArrayList<Student>(); studentList.add( new Student( "xiaopang" , "SN005" , 1 )); studentList.add( new Student( "xiaopang" , "SN002" , 1 )); studentList.add( new Student( "xiaopang" , "SN004" , 1 )); studentList.add( new Student( "xiaopang" , "SN001" , 1 )); studentList.add( new Student( "xiaopang" , "AN003" , 1 )); studentList.add( new Student( "xiaopang" , "AN001" , 1 )); studentList.add( new Student( "xiaopang" , "AN002" , 1 )); // SN开头的再前面排列 studentList.sort((student1, student2) -> { if (student1.getOrderNo().contains( "SN" ) && student2.getOrderNo().contains( "SN" )) { return student1.getOrderNo().compareTo(student2.getOrderNo()); } else if (student1.getOrderNo().contains( "SN" ) && !student2.getOrderNo().contains( "SN" )) { return - 1 ; } else if (!student1.getOrderNo().contains( "SN" ) && student2.getOrderNo().contains( "SN" )) { return 1 ; } else { return student1.getOrderNo().compareTo(student2.getOrderNo()); } }); studentList.forEach(e->{ System.out.println(e.toString()); }); |
每天学习一点点,你就进步一点点。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?