今天工作之余,突然想证明一下,网上一直流传的,LinkedList在删除与插入的效率要高于ArrayList,话不多说,直接上结果:
惊不惊喜??意不意外???我是jdk1.8版本跑的,不晓得网上其他观点是怎么来的就不得而知,只是想表达,看到的不一定是真的,自己验证一把才靠谱。
每天进步一点,年底奖金可能多一点。
附原创代码:
package cn.hsa.hgs.comm.utils;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class ListTest {
private static final int COUNT = 100000;
static List<Integer> fillList(List<Integer> list) {
for (int i = 0; i < COUNT; i++) {
list.add(i); //将list填满,假装我们在数据库里得到这么多数据
}
return list;
}
static void randomAdd(List<Integer> list, String listType) {
long t1 = System.currentTimeMillis();
for (int i = 0; i < COUNT; i++) {
// list.add(i);
list.add(i, i);
}
long t2 = System.currentTimeMillis();
System.out.println(listType + "位置插入" + COUNT + "次耗时:" + (t2 - t1) + "/ms");
}
public static void main(String[] args) {
randomAdd(fillList(new ArrayList<>(COUNT)), "ArrayList数组");
randomAdd(fillList(new LinkedList<>()), "LinkedList链表");
}
}