1、Comparable接口
import java.util.Arrays;
//实现Comparable接口,重写compareTo方法
public class User implements Comparable<User>{
private int id;
private String name;
private int age;
public User(){}
public User(int id,String name,int age){
this.id = id;
this.name = name;
this.age = age;
}
@Override
public int compareTo(User o) {
return this.getAge() - o.getAge();
}
//getters/setters
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//测试
public static void main(String[] args) {
User[] users = new User[4];
users[0] = new User(1,"Array",10);
users[1] = new User(2,"List",9);
users[2] = new User(3,"Vector",12);
users[3] = new User(4,"Set",7);
//进行排序
Arrays.sort(users);
//查看结果
for(User u : users){
System.out.println(u.getAge() + " - " + u.getId() + " - " + u.getName());
}
}
}
2、Comparator类
import java.util.Arrays;
import java.util.Comparator;
public class User{
private int id;
private String name;
private int age;
public User(){}
public User(int id,String name,int age){
this.id = id;
this.name = name;
this.age = age;
}
//getters/setters
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//测试
public static void main(String[] args) {
User[] users = new User[4];
users[0] = new User(1,"Array",10);
users[1] = new User(2,"List",9);
users[2] = new User(3,"Vector",12);
users[3] = new User(4,"Set",7);
//引用比较器,排序
Arrays.sort(users,new UserComparator());
//查看结果
for(User u : users){
System.out.println(u.getAge() + " - " + u.getId() + " - " + u.getName());
}
}
}
//创建比较器类,设置排序规则
class UserComparator implements Comparator<User>{
@Override
public int compare(User o1, User o2) {
return o1.getAge() - o2.getAge();
}
}