Java:List 三种删除方法性能对比

2023-01-10 10:37:20

List 三种删除方法性能对比

三种方法分别是for循环的remove,foreach循环的remove和removeAll

实现代码


		// 创建一个数组
        long t1=System.currentTimeMillis();
        List<Long> a = new ArrayList<>();
        for(long i=1; i<=100000; i++){
            a.add(i);
        }
        long t2=System.currentTimeMillis();
        System.out.println("插入时间="+(t2-t1));

        // for循环一个一个删除
        List<Long> c = new ArrayList<>(a);
        t1=System.currentTimeMillis();
        for(long i=1; i<=100000; i++){
            c.remove(i);
        }
        t2=System.currentTimeMillis();
        System.out.println("for循环一个一个删除时间="+(t2-t1));

        // foreach循环一个一个删除
        List<Long> d = new ArrayList<>(a);
        t1=System.currentTimeMillis();
        for(Long i : a){
            d.remove(i);
        }
        t2=System.currentTimeMillis();
        System.out.println("foreach循环一个一个删除时间="+(t2-t1));

        // removeAll删除时间
        List<Long> e = new ArrayList<>(a);
        t1=System.currentTimeMillis();
        e.removeAll(a);
        t2=System.currentTimeMillis();
        System.out.println("removeAll删除时间="+(t2-t1));

运行结果

插入时间=15
for循环一个一个删除时间=1268
foreach循环一个一个删除时间=1956
removeAll删除时间=7043

remove方法比add方法要更加消耗性能10万个long,相差了差不多85倍;for循环一个一个删除时间最短,直接执行removeAll性能最差。

  • 作者:陈小煋
  • 原文链接:https://blog.csdn.net/Star_Chan/article/details/89109900
    更新时间:2023-01-10 10:37:20