创建两个类student类,和Demo1类
import java.text.SimpleDateFormat;
import java.util.Date;
public class Student{
private int id;
private String name;
private Date birthday;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(int id, String name, Date birthday) {
super();
this.id = id;
this.name = name;
this.birthday = birthday;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return id + ", " + name + "," + sdf.format(birthday);
}
}
package 接口排序;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
public class Demo1 {
//整数数组排序
public static void testSort1() {
int[] arr = {10,23,3,25,4};
Arrays.sort(arr);
for (int i : arr) {
System.out.print("\t"+i);
}
}
static Student[] s161 = new Student[5];
//初始化数组
static void init() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Student zhang = new Student(31,"zhangsan", sdf.parse("2000-10-5"));
Student li = new Student(22,"lisi", sdf.parse("2001-4-25"));
Student wang = new Student(73,"wangwu", sdf.parse("1999-12-15"));
Student zhao = new Student(14,"zhaoliu", sdf.parse("2001-8-10"));
Student tian = new Student(25,"tianqi", sdf.parse("2001-1-5"));
s161[0] = zhang;
s161[1] = li;
s161[2] = wang;
s161[3] = zhao;
s161[4] = tian;
}
//显示
static void show() {
for(Student stu : s161) {
System.out.println(stu);
}
}
//按年龄
static void sortByAge() {
Arrays.sort(s161,new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
long d1 = o1.getBirthday().getTime();
long d2 = o2.getBirthday().getTime();
if(d1>d2)
return -1;
else if(d1==d2)
return 0;
else
return 1;
}
});
}
//按姓名排序
static void sortByName() {
Arrays.sort(s161,new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
String name1= o1.getName();
String name2 = o2.getName();
return name1.compareTo(name2);
}
});
}
//按学号排序
static void sortById() {
//Arrays.sort(t[] arr, Comparator c)
//Comparator,比较器的接口,
//有一个唯一的抽象方法: int compare(T o1, T o2)
// o1,o2是进行比较的对象,如果o1>o2 返回正数, o1==o2返回0,否则返回负数
//定义一个对象比较大小的规则
Arrays.sort(s161, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//按学号比大小
return o1.getId()-o2.getId();
}
});
Arrays.sort(s161,(o1,o2)-> o1.getId()-o2.getId());//Lanmada优雅方法
}
//排序
public static void main(String[] args) throws ParseException {
init();//初始化
show();//排序前显示
// sortById();//按学号排序
// sortByName();//按名字排序
sortById();//按学生id排序
System.out.println("排序后,再显示");
show();//排序后,再显示
}
}