赞
踩
一、ArrayList
基于数组实现;
默认初始容量是10;
不具有线程安全性,用于单线程中(如果在并发条件下使用它,可以用Collections类中的静态方法synchronizedList进行调用);
在需要进行扩容时,ArrayList会扩容到原来的1.5倍,将之前的数据拷贝到新建的数组;
在指定位置检索、在集合末尾插入删除一个元素O(1)、其他位置增删O(n);
二、LinkedList
基于双向循环链表实现(有头结点);
线程不安全(如果在并发条件下使用它,可以用Collections类中的静态方法synchronizedList进行调用);
检索O(n),插入删除是O(1)
三、Vector
基于数组实现;
默认初始容量是10;
线程安全(它的大部分方法都包含关键字synchronized,确保方法同步),但效率没有ArrayList和LinkedList高;
在需要进行扩容时,Vector默认会扩容到原来的2倍(但vector中有capacityIncrement扩容因子,若在创建vector时,指定了其大小,则每次动态数组容量需要增加时,如果容量的增量大于0,增加的大小就是capacityIncrement,否则扩容原来的2倍)将之前的数据拷贝到新建的数组;
在指定位置检索、在集合末尾插入删除一个元素O(1)、其他位置增删O(n),
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。