java 对象排序

来源:互联网 发布:程序员用什么机械键盘 编辑:程序博客网 时间:2024/05/15 11:21
//输出学生对象的时候,需要先按照年龄排序,如果年龄相同,则按照姓名排序,如果姓名也相同,则按照学号排序import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class ComparableTest{public static void main(String[] args){Comparator<Student> comparator = new Comparator<Student>(){public int compare(Student s1, Student s2){// 先排年龄if (s1.age != s2.age){return s1.age - s2.age;}else{// 年龄相同则按姓名排序if (!s1.name.equals(s2.name)){return s1.name.compareTo(s2.name);}else{// 姓名也相同则按学号排序return s1.id - s2.id;}}}};Student stu1 = new Student(1, "zhangsan", "male", 28, "cs");Student stu2 = new Student(2, "lisi", "female", 19, "cs");Student stu3 = new Student(3, "wangwu", "male", 22, "cs");Student stu4 = new Student(4, "zhaoliu", "female", 17, "cs");Student stu5 = new Student(5, "jiaoming", "male", 22, "cs");ArrayList<Student> List = new ArrayList<Student>();List.add(stu1);List.add(stu2);List.add(stu3);List.add(stu4);List.add(stu5);// 这里就会自动根据规则进行排序Collections.sort(List, comparator);display(List);}static void display(ArrayList<Student> lst){for (Student s : lst)System.out.println(s);}}class Student{int age;int id;String gender;String name;String cs;Student(int id, String name, String gender, int age, String cs){this.age = age;this.name = name;this.gender = gender;this.id = id;this.cs = cs;}public String toString(){return id + "  " + name + "  " + gender + "  " + age + "  " + cs;}}

0 0
原创粉丝点击