怎么样用java对集合内的对象排序,可以给出代码吗

解决方案 »

  1.   

    四种基本容器:
    数组:可以用Arrays.sort();
    List:用Collections.sort();
    Set:可以用TreeSet类.排序自动的。
    Map:可以用TreeMap类,以key的值自动排序。
      

  2.   

    用容器自己的方法,自己去实现Comparable接口
      

  3.   

    对象的话 应该用Comparable接口
      

  4.   

    对象先实现comparable接口,再用集合的排序方法.
      

  5.   

    对,对,放进容器中的对象所在的类,应该实现Comparable接口。数组:可以用Arrays.sort(); 
    List:用Collections.sort(); 对上面的这两个排序方法,如果类没有实现Comparable接口,或者想以不同于Comparable的比较方法排序时,可以自己指定一个Comparator来做为参数传给sort方法,也能排序。
      

  6.   

    还是应该实现下Comparable接口.当然如果所用的容器已经实现了Comparable接口的话就直接用相应的排序方法就好了..! JDK有的就用.! 没有的再去想实现
      

  7.   

    public Person(String name,int age){
    this.name=name;
    this.age=age;
    }
    public int compareTo(Person o) {
    // TODO Auto-generated method stub
    return this.age-o.age;
    }
    ////////////对年龄排序
    Person pp1=new Person("dd",12);
    Person pp2=new Person("ww",19);
    Person pp3=new Person("ss",11);
    Person pp4=new Person("ff",23);

    //HashSet<Person>hs=new HashSet<Person>();
    //TreeSet<Person>hs=new TreeSet<Person>();
    List<Person>hs=new ArrayList<Person>();

    hs.add(pp1);
    hs.add(pp2);
    hs.add(pp3);
    hs.add(pp4);
    Object obj[]=hs.toArray();
    Arrays.sort(obj);
    for(int i=0;i<obj.length;i++){

    System.out.println(((Person)obj[i]).getName()+"::"+((Person)obj[i]).getAge());
    }
      

  8.   

    List<Person>hs=new ArrayList<Person>();

    hs.add(pp1);
    hs.add(pp2);
    hs.add(pp3);
    hs.add(pp4);
    Collections.sort(hs);
    for(Person pp:hs){
    System.out.println(pp.getAge());
    }
      

  9.   

    public class PersonComparator implements Comparator<Person>{ public int compare(Person o1, Person o2) {
    // TODO Auto-generated method stub
    return o1.getAge()-o2.getAge();
    }}
    、、、、
    Comparator<Array.Person> ppp=new PersonComparator();
    Collections.sort(hs,ppp);
    for(Person p:hs){
    System.out.println(p.getAge());

    }
      

  10.   

    对象的话要先实现Comparable接口,再排序
      

  11.   

    你想把集合中的对象排序的话,那必须要指定某一个属性来排序咯
    所以你要实现comparable接口 然后重写compareTo()方法。
    下面给你个例子(按两个字段排序的) 你也可以照这种方法把你的字段套进来。
    public int compareTo(Preson op)    
    {   
            if(this.getPreifx().compareTo(op.getPreifx())>0)   
            {   
                return 1;   
            }   
            if(this.getPreifx().compareTo(op.getPreifx())<0)   
            {   
                return -1;   
            }   
            if(this.getId().compareTo(op.getId())>0)   
            {   
                return 1;   
            }   
            if(this.getId().compareTo(op.getId())<0)   
            {   
                return -1;   
            }   
            return 0;   
    }   这个方法写好后你肯定是For循环装对象咯 如果你把对象放到List中就直接调用Collection.sort(对象);