package com.my.action;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Student implements Comparable<Student> {
private String name;
private String sex;
private int age;
public Student(String name, String sex, int age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student name=" + name + ", sex=" + sex + ", age=" + age + "\n";
}
static class MyComparator implements Comparator<Student>, Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public int compare(Student o1, Student o2) {
return o1.getAge() - o2.getAge();
}
}
public static void main(String[] args) {
List<Student> studentList = new ArrayList<>();
studentList.add(new Student("张三", "男", 12));
studentList.add(new Student("李四", "女", 19));
studentList.add(new Student("王五", "男", 15));
studentList.add(new Student("赵六", "女", 22));
//sort方法排序的前提是list集合中的对象是可比较的
//方式一 Student实现comparable变为可比较的对象
Collections.sort(studentList);
//方式二 sort中穿一个comparator的构造器,让Student实现可比较
Collections.sort(studentList, new MyComparator());
System.out.println(studentList);
}
@Override
public int compareTo(Student o) {
return this.age - o.getAge();
}
}
sort排序的两种方式
最新推荐文章于 2024-06-18 16:17:50 发布