LinkedList和ArrayList区别
Posted jassy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinkedList和ArrayList区别相关的知识,希望对你有一定的参考价值。
查询
LinkedList查询用的遍历,AyyayList查询用的是数组下标,所以对于查询ArrayList性能高于LinkedList
新增
新增在末尾或者中间就是ArrayList比LinkedList快,如果在最前面就是LinkedList比ArrayList快
测试一下新增在末尾
public static void main(String[] args){
int flag = 100000;
ArrayList aList = new ArrayList(flag);
LinkedList lList = new LinkedList();
Long start1 = System.currentTimeMillis();
for(int i=0; i<flag;i++)
aList.add("a");
System.out.println(System.currentTimeMillis() - start1);
Long start2 = System.currentTimeMillis();
for(int i=0; i<flag;i++)
lList.add("a");
System.out.println(System.currentTimeMillis() - start2);
}
测试一下新增在中间
public static void main(String[] args){
int flag = 10000;
ArrayList aList = new ArrayList(flag);
LinkedList lList = new LinkedList();
Long start1 = System.currentTimeMillis();
for(int i=0; i<flag;i++){
if(i < flag / 2)
aList.add("a");
else
aList.add(flag / 2, "a");}
System.out.println(System.currentTimeMillis() - start1);
Long start2 = System.currentTimeMillis();
for(int i=0; i<flag;i++){
if(i < flag / 2)
lList.add("a");
else
lList.add(flag / 2, "a");}
System.out.println(System.currentTimeMillis() - start2);
}
测试一下新增在开始
public static void main(String[] args){
int flag = 10000;
ArrayList aList = new ArrayList(flag);
LinkedList lList = new LinkedList();
Long start1 = System.currentTimeMillis();
for(int i=0; i<flag;i++){
aList.add(0 ,"a");
}
System.out.println(System.currentTimeMillis() - start1);
Long start2 = System.currentTimeMillis();
for(int i=0; i<flag;i++){
lList.add(0 ,"add");
}
System.out.println(System.currentTimeMillis() - start2);
}
修改
修改在末尾或者中间就是ArrayList比LinkedList快,如果在最前面就是LinkedList比ArrayList快
删除
删除ArrayList比LinkedList快
以上是关于LinkedList和ArrayList区别的主要内容,如果未能解决你的问题,请参考以下文章