当对象实现了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'}
本文介绍如何在Java中通过实现Comparable接口并重写compareTo方法来对自定义类的对象进行排序。通过一个具体的例子,展示了如何根据年龄和名字属性对User对象进行排序,并提供了测试代码及结果。
581

被折叠的 条评论
为什么被折叠?



