Java对ArrayList进行排序
数字使用直接比较大小来排序,String的话,使用compare()方法进行排序。
测试代码:
1.对字符串对象排序
1 @Test 2 public void test17() throws Exception { 3 List< String > stringList = new ArrayList<>(); 4 stringList.add("haha"); 5 stringList.add("123"); 6 stringList.add("wq"); 7 stringList.add("d"); 8 stringList.add("rt"); 9 stringList.add("uuk"); 10 System.out.println("排序前:" + stringList); 11 Collections.sort(stringList, new Comparator< String >() { 12 @Override 13 public int compare(String lhs, String rhs) { 14 System.out.println("排序字符串:" + lhs + "," + rhs); 15 16 int i = lhs.compareTo(rhs); 17 System.out.println("排序结果" + i); 18 if ( i > 0 ) { 19 return 1; 20 } else { 21 return -1; 22 } 23 } 24 }); 25 System.out.println("排序后:" + stringList); 26 }
打印的日志:
1 排序前:[haha, 123, wq, d, rt, uuk] 2 排序字符串:123,haha 3 排序结果-55 4 排序字符串:wq,123 5 排序结果70 6 排序字符串:wq,haha 7 排序结果15 8 排序字符串:d,haha 9 排序结果-4 10 排序字符串:d,123 11 排序结果51 12 排序字符串:rt,haha 13 排序结果10 14 排序字符串:rt,wq 15 排序结果-5 16 排序字符串:uuk,haha 17 排序结果13 18 排序字符串:uuk,wq 19 排序结果-2 20 排序字符串:uuk,rt 21 排序结果3 22 排序后:[123, d, haha, rt, uuk, wq]
2.对数字进行排序
1 @Test 2 public void test18() throws Exception { 3 List< Integer > stringList = new ArrayList<>(); 4 stringList.add(123); 5 stringList.add(32); 6 stringList.add(0); 7 stringList.add(-4); 8 stringList.add(5); 9 stringList.add(123131); 10 System.out.println("排序前:" + stringList); 11 Collections.sort(stringList, new Comparator< Integer >() { 12 @Override 13 public int compare(Integer lhs, Integer rhs) { 14 if ( lhs > rhs ) { 15 return 1; 16 } else { 17 return -1; 18 } 19 } 20 }); 21 System.out.println("排序后:" + stringList); 22 }
打印日志:
排序前:[123, 32, 0, -4, 5, 123131]
排序后:[-4, 0, 5, 32, 123, 123131]
在实现Comparator接口的compare()方法的时候,return 1代表大于,return -1代表小于。然后根据返回值来进行排序。
直面挑战,躬身入局
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架