ArrayList<String>里面装的全是字符串,不过我要特定的排序;
怎么重写他的CompareTo方法!
定义一个String类?
高手指教,在线等!

解决方案 »

  1.   

    Collections.sort(List<T> list, Comparator<? super T> c) 然后你再自己定义一个Comparator
      

  2.   


    class cmp implements Comparator<String>{ @Override
    public int compare(String o1, String o2) {
    return 0;
    }

    }
      

  3.   


    是,碰到排序都这么做。
    或者让类自己实现 Coparatable,然后Collections.sort(List<T> list)。(你这个String排序,就不用这么搞了)
      

  4.   

    给你看下我整理的List排序方法List排序排序方法一(直接排序)
        List<String> names=new ArrayList<String>();
          List<Integer> ages=new ArrayList<Integer>();
          Collections.sort(names);
          Collections.sort(ages);
       排序方法二
          
          实现Comparable接口
           该方法缺点就是只能对单一属性添加进行排序,而且写死在User类中
        public class User implements Comparable<User>
        public int compareTo(User user) {
            //return this.getName().compareTo(user.getName()); //升序
            return user.getName().compareTo(this.getName());  //降序
        }
       Collections.sort(users);排序方法三
       使用比较器来进行排序,优点可以自己定义排序规则,可以对多属性进行排序
       创建比较器类
       public class UserComparator implements Comparator<User> {
            /**
             * 比较器方法
             * 先按年龄排序从小到大,如果年龄一样的话按id排序
             */
            @Override
            public int compare(User o1, User o2) {
                    if(o1.getAge()>o2.getAge())
                            return 1;
                    else if(o1.getAge()==o2.getAge()){
                            if(o1.getId()>o2.getId())
                                    return 1;
                            else if(o1.getId()==o2.getAge())
                                    return 0;
                            else
                                    return -1;
                    }
                    else
                            return -1;
            }
         }     //创建比较器对象
         UserComparator comp=new UserComparator();
         //调用排序方法
         Collections.sort(users,comp);
      

  5.   

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Random;
    import java.util.Set;public class Test { public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    List list = new ArrayList();
    list.add("abc");
    list.add("dbc");
    list.add("bbc");
        Collections.sort(list,new Comparator() {
    public int compare(Object o1, Object o2) {
       String s1 = (String)o1;
       String s2 = (String)o2;
      
    return s1.compareTo(s2)>0 ? 1 :-1;
    }
    });
        Iterator inte = list.iterator();
        while(inte.hasNext()){
        System.out.println(inte.next());
    } }} 随手写的  希望对你有帮助