先按年龄排序,要是年龄相等的话,就按名字的顺序排序
//先按年龄排序,要是年龄相等的话,就按名字的顺序排序;
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());
?? }
? }
?}
?
?
?
类似功能另一篇博客总结在线