Java中使用Collections.sort()方法对数字和字符串泛型的LIst进行排序

在List的排序中常用的是Collections.sort()方法,可以对String类型和Integer类型泛型的List集合进行排序。

首先演示sort()方法对Integer类型泛型的List排序

 1 /*
 2      * 通过Collections.sort()方法,对Integer类型的泛型List进行排序
 3      */
 4     public void testSort1(){
 5         List<Integer> integerList = new ArrayList<Integer>();
 6         //插入100以内的十个随机数
 7         Random ran = new Random();
 8         Integer k;
 9         for(int i=0;i<10;i++){
10             do{
11             k = ran.nextInt(100);
12             }while(integerList.contains(k));
13             integerList.add(k);
14             System.out.println("成功添加整数"+k);
15         }
16         
17         System.out.println("\n-------排序前------------\n");
18     
19         for (Integer integer : integerList) {
20             System.out.print("元素:"+integer);
21         }
22         Collections.sort(integerList);
23         System.out.println("\n-------排序后------------\n");
24         for (Integer integer : integerList) {
25             System.out.print("元素:"+integer);
26         }
27     }

 

打印输出的结果为:

成功添加整数4
成功添加整数56
成功添加整数85
成功添加整数8
成功添加整数14
成功添加整数89
成功添加整数96
成功添加整数0
成功添加整数90
成功添加整数63

-------排序前------------

元素:4元素:56元素:85元素:8元素:14元素:89元素:96元素:0元素:90元素:63
-------排序后------------

元素:0元素:4元素:8元素:14元素:56元素:63元素:85元素:89元素:90元素:96

 

对String类型泛型的List进行排序

 1 /*
 2      * 对String泛型的List进行排序
 3      */
 4     public void testSort2(){
 5         List<String> stringList = new ArrayList<String>();
 6         stringList.add("imooc");
 7         stringList.add("lenovo");
 8         stringList.add("google");
 9         System.out.println("\n-------排序前------------\n");
10         for (String str : stringList) {
11             System.out.print("元素:"+str);
12         }
13         Collections.sort(stringList);
14         System.out.println("\n-------排序后------------\n");
15         for (String str : stringList) {
16             System.out.print("元素:"+str);
17         }
18     }

 

打印输出的结果为:

-------排序前------------

元素:imooc元素:lenovo元素:google
-------排序后------------

元素:google元素:imooc元素:lenovo

 

使用sort()方法对String类型泛型的List进行排序时,首先是判断首字母的顺序,首字母相同时再判断其后面的字母顺序,具体的排序规则为:

1、数字0-9;

2、大写字母A-Z;

3、小写字母a-z

 

转载于:https://www.cnblogs.com/jpwz/p/5683918.html

<think>好的,用户想了解如何使用JavaCollections.sortList<String>进行排序。首先,我需要回忆一下相关知识。记得Collections.sort有两种常用的方法:一种是使用自然顺序排序,另一种是通过自定义比较器来排序。 根据引用[3],如果一个类实现了Comparable接口,就可以直接用Collections.sort进行自然排序。String类已经实现了Comparable,所以对于List<String>,直接调用Collections.sort(list)应该就能按字典序升序排列。那用户的问题应该包含这个方法的基本使用示例。 然后是降序排列。引用[1]提到可以使用Collections.sort(list, Collections.reverseOrder())来实现降序。这里需要传入一个比较器,reverseOrder()会返回一个逆序的比较器。因此,在示例中应该展示这两种情况:升序降序。 接下来要考虑代码的正确性。例如,示例中的List<String>是否正确初始化,排序后的输出是否符合预期。可能需要先创建一个包含无序字符串的列表,然后分别调用两种排序方法,并打印结果。 还要注意用户可能的疑问,比如是否区分大小写。因为String的默认排序是区分大小写的,大写字母会排在小写字母前面。如果用户需要不区分大小写的排序,可能需要自定义比较器,比如使用String.CASE_INSENSITIVE_ORDER。虽然用户的问题中没有提到这点,但作为相关知识可以补充在相关问题里。 另外,引用[2]提到两种方法的源码,可能涉及到比较器的使用。比如,第二个方法需要传入自定义的Comparator,这可能用于更复杂的排序需求,但用户的问题主要集中在List<String>,所以暂时不需要深入这部分,但可以作为扩展知识提及。 最后,根据用户提供的引用,特别是引用[1]中的例子,需要确保代码示例的正确格式,比如使用正确的语法,避免尖括号被转义。在回答中使用代码块,并正确显示List<String>的类声明。 总结步骤:首先介绍自然排序(升序),然后降序,提供代码示例,解释各部分的作用,并补充可能的注意事项,如大小写问题。最后生成相关问题,帮助用户进一步学习。</think>### 使用 `Collections.sort` 对 `List<String>` 排序的示例 #### 1. **默认升序排序** 直接调用 `Collections.sort(list)`,按字符串的**字典序**(自然顺序)升序排列: ```java List<String> list = new ArrayList<>(); list.add("apple"); list.add("Banana"); list.add("cherry"); list.add("1_apple"); // 升序排序(字典序) Collections.sort(list); System.out.println("升序结果:" + list); // 输出:[1_apple, Banana, apple, cherry] ``` - **说明**:排序规则为 Unicode 值比较,数字 < 大写字母 < 小写字母[^3]。 --- #### 2. **降序排序** 通过 `Collections.reverseOrder()` 指定降序比较器: ```java // 降序排序(字典序反向) Collections.sort(list, Collections.reverseOrder()); System.out.println("降序结果:" + list); // 输出:[cherry, apple, Banana, 1_apple] ``` --- #### 3. **自定义排序规则(如忽略大小写)** 若需忽略大小写排序,可使用 `String.CASE_INSENSITIVE_ORDER` 比较器: ```java // 不区分大小写的升序 Collections.sort(list, String.CASE_INSENSITIVE_ORDER); System.out.println("不区分大小写升序:" + list); // 输出:[1_apple, apple, Banana, cherry] ``` --- ### 关键注意事项 1. **原列表被修改**:`Collections.sort` 直接修改原列表,而非返回新列表[^1]。 2. **排序稳定性**:对 `List<String>` 的排序是稳定的(相等元素顺序不变)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值