//先按年龄排序,要是年龄相等的话,就按名字的顺序排序;
public class User implements Comparable<User>{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int compareTo(User o) {
if(this.getAge()-(o.getAge())!=0){
return this.getAge()-(o.getAge());
}else{
return this.getName().compareTo(o.getName());
}
}
}
//测试类
public class Test {
public static void main(String[] args){
User user1=new User();
user1.setName("e");
user1.setAge(23);
User user2=new User();
user2.setName("d");
user2.setAge(3);
User user3=new User();
user3.setName("b");
user3.setAge(6);
List<User> list=new ArrayList<User>();
list.add(user1);
list.add(user2);
list.add(user3);
//主要要注意pojo实现(implements )了Comparable<T>接口
//所以采用Collections.sort(list);
Collections.sort(list);
for(User u:list){
System.out.println(u.getAge()+"/"+u.getName());
}
}
}
&&&&&&&&&&&&&&&&&&&&&& 上面和下面实现的功能是一样的注意观察不同点
pojo
public class User implements Comparator<User> {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int compare(User o1, User o2) {
if(o1.getAge()-(o2.getAge())!=0){
return o1.getAge()-(o2.getAge());
}else{
return o1.getName().compareTo(o2.getName());
}
}
}
测试类
public class Test {
public static void main(String[] args){
User u1=new User();
u1.setAge(13);
u1.setName("d");
User u2=new User();
u2.setAge(6);
u2.setName("h");
User u3=new User();
u3.setAge(3);
u3.setName("a");
User u4=new User();
u4.setAge(23);
u4.setName("c");
List<User> al=new ArrayList<User>();
al.add(u1);
al.add(u2);
al.add(u3);
al.add(u4);
//主要观察里面的对象new User();和上面的实现有什么不同
Collections.sort(al,new User());
Iterator ite=al.iterator();
while(ite.hasNext()){
User user=(User)ite.next();
System.out.print(user.getAge()+"/");
System.out.println(user.getName());
}
}
}