当对象实现了Comparable接口重写了compareTo方法
如下:
public class User implements Comparable<User>{ private int age; private String name; public User() { } public User(int age, String name) { this.age = age; this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public int compareTo(User o) { //年龄从小到大 if(this.getAge() - o.getAge() > 0){ return 1; }else if(this.getAge() - o.getAge() == 0){ return this.getName().compareTo(o.getName()); } return -1; } }
测试:
@Test public void userTestTwo(){ User u1 = new User(12,"b"); User u2 = new User(22,"y"); User u3 = new User(22,"a"); User[] users = {u1,u2,u3}; System.out.println("排序前:"); for (User user:users) { System.out.println(user.toString()); } System.out.println(); //进行排序 Arrays.sort(users); System.out.println("排序后:"); for (User user:users) { System.out.println(user.toString()); } }
控制台打印结果:
排序前: User{age=12, name='b'} User{age=22, name='y'} User{age=22, name='a'} 排序后: User{age=12, name='b'} User{age=22, name='a'} User{age=22, name='y'}