java 18-11 Collections用于ArrayList集合中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 18-11 Collections用于ArrayList集合中相关的知识,希望对你有一定的参考价值。

  Collections可以针对ArrayList存储基本包装类的元素排序,存储自定义对象可不可以排序呢?
    自定义对象要自己写比较器进行排序

 1 package cn.itcast_02;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.Comparator;
 6 import java.util.List;
 7 public class CollectionsDemo {
 8     public static void main(String[] args) {
 9         // 创建集合对象
10         List<Student> list = new ArrayList<Student>();
11 
12         // 创建学生对象
13         Student s1 = new Student("林青霞", 27);
14         Student s2 = new Student("风清扬", 30);
15         Student s3 = new Student("刘晓曲", 28);
16         Student s4 = new Student("武鑫", 29);
17         Student s5 = new Student("林青霞", 27);
18 
19         // 添加元素对象
20         list.add(s1);
21         list.add(s2);
22         list.add(s3);
23         list.add(s4);
24         list.add(s5);
25 
26         // 排序
27         // 自然排序
28         // Collections.sort(list);
29         // 比较器排序
30         // 如果同时有自然排序和比较器排序,以比较器排序为主
31         Collections.sort(list, new Comparator<Student>() {
32             @Override
33             public int compare(Student s1, Student s2) {
34                 int num = s2.getAge() - s1.getAge();
35                 int num2 = num == 0 ? s1.getName().compareTo(s2.getName())
36                         : num;
37                 return num2;
38             }
39         });
40 
41         // 遍历集合
42         for (Student s : list) {
43             System.out.println(s.getName() + "---" + s.getAge());
44         }
45     }
46 }

 

以上是关于java 18-11 Collections用于ArrayList集合中的主要内容,如果未能解决你的问题,请参考以下文章

Java-List集合排序之Comparable与Comparator的使用

跟王老师学集合:操作集合的工具类:Collections

Java集合框架:Collections工具类

Java基础——Collections工具类

Java中Collections和Arrays类

Java:Collections.sort和Arrays.sort的区别