黑马程序员技术交流社区

标题: ArrayList 集合怎么排序,如果不是使用Ccollections对象方法? [打印本页]

作者: gzy    时间: 2015-1-23 14:29
标题: ArrayList 集合怎么排序,如果不是使用Ccollections对象方法?
s:求解各位学长学姐
作者: lwj123    时间: 2015-1-23 18:10
ArrayList排序
ArrayList<String> al = new ArrayList<String>(new Comparator() {
        public int compare(String s1,String s2) {
                return s1.compareTo(s2);
        }
});
作者: 云兮丶    时间: 2015-1-23 18:55

:LArrayList的构造方法好像没有传入比较器的把!!!


作者: xiaoyi    时间: 2015-1-23 19:44
我也不知道啊
作者: godmmm    时间: 2015-1-23 21:00
  1. package interview;
  2. import java.util.ArrayList;
  3. public class SortArrayList {

  4.         public static void main(String[] args) {
  5.                 // TODO Auto-generated method stub
  6.                 ArrayList<Integer> list=new ArrayList<Integer>();
  7.                 list.add(1);
  8.                 list.add(3);
  9.                 list.add(2);
  10.                 list.add(66);
  11.                 list.add(1);
  12.                 list.add(7);
  13.                 list.add(9);
  14.                 sort(list);
  15.                 System.out.println(list);
  16.         }

  17.         private static void sort(ArrayList<Integer> list) {
  18.                 for(int x=0;x<list.size();x++)
  19.                 {
  20.                         for(int y=x;y<list.size();y++)
  21.                         {
  22.                                 if((list.get(x).compareTo(list.get(y))>=0))
  23.                                         //如果是Integer类型可以用list.get(x)>list.get(y)来判断
  24.                                 {
  25.                                         Integer temp=list.get(x);//排序用set和get方法来操作集合中的元素
  26.                                         list.set(x, list.get(y));
  27.                                         list.set(y, temp);
  28.                                 }
  29.                         }
  30.                 }
  31.         }
  32. }
复制代码
我来给你解答,这个我以前的思路,用set和get方法

作者: Dragon_Free    时间: 2015-1-23 22:09
回复一下沙发,看看API,ArraysList中的构造函数 是没有传入比较器这一个东西的,那个SET子类的东西。对于ArraysList中比较的话,可以做自定义类中定义一个compareTo,然后用迭代器输出时,底层会帮你自己调用的,不过最好加上泛型,因为防止你的类型转换异常,如果是基本数数据类型,就用包装类,都有一个compareTo的方法。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2