1.实现Comparable接口(如果List<Object>中Object实现了Comparator接口,便可以直接用以下Collections.sort的方式对List进行排序)
public class Test {
public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
userList.add(new User(3, "3"));
userList.add(new User(2, "2"));
userList.add(new User(5, "5"));
userList.add(new User(7, "7"));
Collections.sort(userList);
for (User user : userList) {
System.out.println(user.getAge());
}
}
}
class User implements Comparable<User> {
private int age;
private String name;
public User(int age, String name) {
super();
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 user) {
return age - user.getAge();
}
}
2.实现Comparator接口
public class Test {
public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
userList.add(new User(3, "3"));
userList.add(new User(2, "2"));
userList.add(new User(5, "5"));
userList.add(new User(7, "7"));
Collections.sort(userList,new CompareUser());
for (User user : userList) {
System.out.println(user.getAge());
}
}
}
class CompareUser implements Comparator<Object>{
@Override
public int compare(Object arg0, Object arg1) {
User user1=(User)arg0;
User user2=(User)arg1;
return user1.getName().toLowerCase().compareTo(user2.getName().toLowerCase());
}
}
class User {
private int age;
private String name;
public User(int age, String name) {
super();
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;
}
}