1、ArrayList和linkedList的区别
ArrayList 插入,删除数据慢
linkedList, 插入,删除数据快 (本就是Java 封装好的一个链表结构)
ArrayList是顺序结构,所以定位很快
linkedList 是链表结构,必须得一个一个的数过去,所以定位慢
至于为什么定位慢? 以下代码示例有形象展示:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.linkedList;
import java.util.List;
public class compare {
public static void main(String[] args) {
List l;
l=new ArrayList<>();
testproject_insert(l,"ArrayList");
testproject_wherearea(l,"ArrayList");
l=new linkedList();
testproject_insert(l,"linkedList");
testproject_wherearea(l,"linkedList");
}
public static void testproject_insert(Listl ,String type)
{
long start=System.currentTimeMillis();
for (int i = 0; i < 100*1000; i++) {
l.add(0,5);
}
long end=System.currentTimeMillis();
System.out.printf("%s的插入5这个数据100*1000次耗时:%dn",type,end-start);
}
public static void testproject_wherearea(Listl,String type)
{
long start=System.currentTimeMillis();
for (int i = 0; i < 100; i++) {
int h=(int)(Math.random()*100);
l.add(h);
}
int s=l.size()/2;
for (int i = 0; i < 100*1000; i++) {
int l1=l.get(s);
l1++;
l.set(s, l1);
}
long end=System.currentTimeMillis();
System.out.printf("%s的定位这个数据自增再放回100*1000次耗时:%dn",type,end-start);
}
}
一个对Array List 和linked List 作比较的代码——计数
直观的看出 linkedList 定位确实比ArrayList慢 但是插入是比ArrayList快的



