List list=new ArrayList();
        list.add(new Person("张三",24));
        list.add(new Person("李四",27));
        list.add(new Person("王五",18));
能对Person的年龄来排序来得到
        list.add(new Person("王五",18));
        list.add(new Person("张三",24));
        list.add(new Person("李四",27));?

解决方案 »

  1.   

    List是有序的,是按加入的顺序排序的
      

  2.   


    import java.util.*;
    public class TestList{
       public static void main(String args[]){ 
       
            List<Person> list=new ArrayList<Person>();
            list.add(new Person("张三",24));
            list.add(new Person("李四",27));
            list.add(new Person("王五",18));
    Collections.sort(list);
    for(int i=0;i<list.size();i++){
       System.out.println(list.get(i));
    }
       }
    }
    class Person implements Comparable<Person>{
       private String name;
       private int age;
       public  Person(String name,int age){
             this.name=name;
     this.age=age;
       }
       public int compareTo(Person p){
           
           return age-p.age;
       }
       public String toString(){
          return name+","+age;
       }
    }
      

  3.   


    这是第二种做法:
    import java.util.*;
    public class TestList{
       public static void main(String args[]){ 
       
            List<Person> list=new ArrayList<Person>();
            list.add(new Person("张三",24));
            list.add(new Person("李四",27));
            list.add(new Person("王五",18));
    MyComparator mc=new MyComparator();
    Collections.sort(list,mc);
    for(int i=0;i<list.size();i++){
       System.out.println(list.get(i));
    }
       }
    }
    class Person {
       private String name;
       private int age;
       public  Person(String name,int age){
             this.name=name;
     this.age=age;
       }
       public String toString(){
          return name+","+age;
       }
       public int getAge(){
          return this.age;
       }
    }
    class MyComparator implements Comparator<Person>{
       public int compare(Person p1,Person p2){
           return p1.getAge()-p2.getAge();
       }
    }