ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
上一段话中说的插入,和追加是有区别的。
经测试,插入所花费的时间(从小到大):LinkedList,ArrayList,Vector
插入用的方法,add(0,值);
追加:
经测试,插入所花费的时间(从小到大):ArrayList,Vector,LinkedList
追加用的方法,add(值);
追加只需在最后面添加,插入涉及到list的位置的问题,因为list是有序的。插入时,需要将当前位置的元素向后挪一位。