JavaSE-16.2.2【案例-ArrayList集合存储学生并排序】

复制代码
 1 package day7.lesson2;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.Comparator;
 6 
 7 /*
 8 2.2 案例-ArrayList集合存储学生并排序
 9     ArrayList存储学生对象,使用Collections对ArrayList进行排序
10     要求:按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序
11  */
12 public class CollectionsDemo2 {
13     public static void main(String[] args) {
14         ArrayList<Student> arrayList = new ArrayList<>();
15 
16         Student s1 = new Student("xiyangyang", 11);
17         Student s2 = new Student("lanyangyang", 13);
18         Student s3 = new Student("feiyangyang", 15);
19         Student s4 = new Student("meiyangyang", 11);
20 
21         arrayList.add(s1);
22         arrayList.add(s2);
23         arrayList.add(s3);
24         arrayList.add(s4);
25 
26         //使用Collections对ArrayList集合排序
27         //sort•(List<T> list, Comparator<? super T> c)
28         Collections.sort(arrayList, new Comparator<Student>() { //匿名内部类比较器
29             @Override
30             public int compare(Student s1, Student s2) {
31                 int num = s1.getAge() - s2.getAge();
32                 int num2 = (num==0 ? s1.getName().compareTo(s2.getName()) : num);
33                 return num2;
34             }
35         });
36 
37         for (Student s: arrayList){
38             System.out.println(s.getName() + "," + s.getAge());
39         }
40     }
41 }
复制代码
复制代码
 1 package day7.lesson2;
 2 
 3 public class Student {
 4 
 5     private String name;
 6     private int age;
 7 
 8     public Student() {
 9     }
10 
11     public Student(String name, int age) {
12         this.name = name;
13         this.age = age;
14     }
15 
16     public void setName(String name) {
17         this.name = name;
18     }
19 
20     public void setAge(int age) {
21         this.age = age;
22     }
23 
24     public String getName() {
25         return name;
26     }
27 
28     public int getAge() {
29         return age;
30     }
31 }
复制代码

 

posted @   yub4by  阅读(80)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示