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代表小于。然后根据返回值来进行排序。

posted @   熠然  阅读(29635)  评论(0编辑  收藏  举报
编辑推荐:
· 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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示