1.通过Comparable实现排序
package Comparable; import java.util.Arrays; public class ComparableUser implements Comparable<ComparableUser> { private String id; private int age; public ComparableUser(String id, int age) { this.id = id; this.age = age; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getId() { return id; } public void setId(String id) { this.id = id; } public int compareTo(ComparableUser o) { return this.age - o.getAge(); //return ((ComparableUser) o).getAge() - this.age; } /** * 测试方法 */ public static void main(String[] args) { ComparableUser[] users = new ComparableUser[] { new ComparableUser("u1001", 25), new ComparableUser("u1002", 20), new ComparableUser("u1003", 21) }; Arrays.sort(users);// 对对象进行排序 for (int i = 0; i < users.length; i++) { ComparableUser user = users[i]; System.out.println(user.getId() + " " + user.getAge()); } } }
2.通过实现Comparator进行排序
package Comparable; import java.util.Arrays; import java.util.Comparator; class User { private String id; private int age; public User(String id, int age) { this.id = id; this.age = age; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getId() { return id; } public void setId(String id) { this.id = id; } } public class UserComparator implements Comparator { public int compare(Object arg0, Object arg1) { return ((User) arg0).getAge() - ((User) arg1).getAge(); } /** * 测试方法 */ public static void main(String[] args) { User[] users = new User[] { new User("u1001", 25), new User("u1002", 20), new User("u1003", 21) }; Arrays.sort(users, new UserComparator()); for (int i = 0; i < users.length; i++) { User user = users[i]; System.out.println(user.getId() + " " + user.getAge()); } } }