1、List中对象实现Comparable接口
2、Collections.sort 重载方法来实现
注:实现和重载方法返回 1 升序、-1 倒序、0 顺序
public class User implements Comparable<User>{
private String name;
private Integer age;
public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public int compareTo(User user2) {
return this.getAge().compareTo(user2.getAge());
}
}
public class User1 {
private String name;
private Integer age;
public User1(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
测试类
public class Test {
public static void main(String[] args) {
User user1 = new User("name1",1);
User user2 = new User("name2",3);
User user3 = new User("name3",1);
User user4 = new User("name4",4);
User user5 = new User("name5",2);
List<User> list1 = new ArrayList<User>();
list1.add(user1);
list1.add(user2);
list1.add(user3);
list1.add(user4);
list1.add(user5);
Collections.sort(list1);
for(User user : list1){
System.out.println(user.getName()+"--"+user.getAge());
}
User1 user6 = new User1("name6",1);
User1 user7 = new User1("name7",3);
User1 user8 = new User1("name8",1);
User1 user9 = new User1("name9",4);
User1 user10 = new User1("name10",2);
List<User1> list2 = new ArrayList<User1>();
list2.add(user6);
list2.add(user7);
list2.add(user8);
list2.add(user9);
list2.add(user10);
Collections.sort(list2,new Comparator<User1>(){
public int compare(User1 user1, User1 user2) {
return user1.getAge().compareTo(user2.getAge());
}
});
for(User1 user : list2){
System.out.println(user.getName()+"--"+user.getAge());
}
}
}
结果:
name1--1
name3--1
name5--2
name2--3
name4--4
---------------
name6--1
name8--1
name10--2
name7--3
name9--4