| 
 
| 本帖最后由 十万一千 于 2014-11-21 13:37 编辑 
 复制代码package com.itheima.test3;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class List自定义排序 {
        // 6、 编写程序,生成5个1至10之间的随机整数,存入一个List集合,
        // 编写方法对List集合进行排序(自定义排序算法,禁用Collections.sort方法和TreeSet),然后遍历集合输出。
        @SuppressWarnings("serial")
        public static void main(String[] args) {
                long s = System.currentTimeMillis();
                Random random = new Random();
                List<Integer> list = new ArrayList<Integer>() {
                        /* 覆写list对象的add(E e) 方法 */
                        @Override
                        public boolean add(Integer e) {
                                for (int i = 0; i < this.size(); i++) {
                                        if (this.get(i) >= e) {
                                                add(i, e);
                                                return true;
                                        }
                                }
                                return super.add(e);
                        }
                };
                for (int i = 0; i < 15000; i++) {
                        list.add(random.nextInt(100) + 1);
                }
                // 通过时间对比,该算法中,ArrayList效率在1w左右的数据量的时候远远高于LinkedList
                System.out.println(System.currentTimeMillis() - s);
                System.out.println(list);
        }
}
ps:代码稍微修改了下if (this.get(i) > e) -> if (this.get(i) >= e)
 | 
 |