一、在对象中实现Comparable接口
public class Student2 implements Comparable<Student2> {
private String name;
private int age;
private int sex;
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;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Student1{" +
"name='" + name + '\'' +
", age=" + age +
", sex=" + sex +
'}';
}
@Override
public int compareTo(Student2 o) {
return this.getAge()-o.getAge();
}
}
在排序的地方使用如下代码:
Collections.sort(student1List);
@Test
public void testSort2(){
List<Student2> student1List = new ArrayList<Student2>();
Student2 s1 = new Student2();
s1.setName("z3");
s1.setAge(20);
s1.setSex(0);
Student2 s2 = new Student2();
s2.setName("l4");
s2.setAge(15);
s2.setSex(1);
Student2 s3 = new Student2();
s3.setName("w5");
s3.setAge(23);
s3.setSex(1);
Student2 s4 = new Student2();
s4.setName("z6");
s4.setAge(19);
s4.setSex(0);
student1List.add(s1);
student1List.add(s2);
student1List.add(s3);
student1List.add(s4);
Collections.sort(student1List);
for (Student2 s:student1List) {
System.out.println("student:"+s.toString());
}
}
输出:
二、在排序时自己重写compareTo接口
实体类
public class Student1 {
private String name;
private int age;
private int sex;
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;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Student1{" +
"name='" + name + '\'' +
", age=" + age +
", sex=" + sex +
'}';
}
}
使用时采用如下方式:
Collections.sort(student1List, new Comparator<Student1>() { @Override public int compare(Student1 o1, Student1 o2) { return o1.getName().compareTo(o2.getName()); } });
@Test
public void testSort1(){
List<Student1> student1List = new ArrayList<Student1>();
Student1 s1 = new Student1();
s1.setName("z3");
s1.setAge(20);
s1.setSex(0);
Student1 s2 = new Student1();
s2.setName("l4");
s2.setAge(15);
s2.setSex(1);
Student1 s3 = new Student1();
s3.setName("w5");
s3.setAge(23);
s3.setSex(1);
Student1 s4 = new Student1();
s4.setName("z6");
s4.setAge(19);
s4.setSex(0);
student1List.add(s1);
student1List.add(s2);
student1List.add(s3);
student1List.add(s4);
Collections.sort(student1List, new Comparator<Student1>() {
@Override
public int compare(Student1 o1, Student1 o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (Student1 s:student1List) {
System.out.println("student:"+s.toString());
}
}
输出: