需求:ArrayList存储学生对象,使用Collections对ArrayList进行排序
要求:按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序。
学生类Student
package com.itheima_05; public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
CollectionDemo
package com.itheima_05; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class CollectionDemo02 { public static void main(String[] args) { ArrayList<Student> array=new ArrayList<Student>(); Student s1=new Student("lingqingxia",30); Student s2=new Student("zhangmanyu",35); Student s3=new Student("wangzuxian",33); Student s4=new Student("liuyan",33); array.add(s1); array.add(s2); array.add(s3); array.add(s4); Collections.sort(array, new Comparator<Student>() { @Override public int compare(Student s1, Student s2) { int num=s1.getAge()-s2.getAge(); int num2=num==0?s1.getName().compareTo(s2.getName()):num; return num2; } }); for(Student s:array){ System.out.println(s.getName()+","+s.getAge()); } } }