ArrayList和LinkedList的大致区别如下:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
public static void main(String[] args){
List<Object> a = new ArrayList<Object>();
LinkedList<Object>b = new LinkedList<Object>();
int i;
for(i=0;i<100000;i++)
{
a.add(i,i);
}
for(i=0;i<100000;i++)
{
b.add(i,i);
}
long aTime1= System.currentTimeMillis();
for(i=0;i<100000;i++)
{
a.remove(99999-i);
}
long aTime2= System.currentTimeMillis();
long bTime1= System.currentTimeMillis();
for(i=0;i<100000;i++)
{
b.remove(99999-i);
}
long bTime2= System.currentTimeMillis();
System.out.println("aTime:"+(aTime2-aTime1)+"bTime"+(bTime2-bTime1));
}
ArrayList更适合读取数据,linkedList更多的时候添加或删除数据。