本帖最后由 十万一千 于 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) |
|