java基础(六)ArrayList、LinkedList、Vector的区别
来源:互联网 发布:js createelement 编辑:程序博客网 时间:2024/05/19 09:17
LinkedList类
LinkedList实现了List接口,允许null元素。
此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。
这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。
一种解决方法是在创建List时构造一个同步的List:List list = Collections.synchronizedList(new LinkedList(...));
ArrayList类
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
和LinkedList一样,ArrayList也是非同步的(unsynchronized)。
Vector类
Vector非常类似ArrayList,但是Vector是同步的。
由Vector创建的Iterator,虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException,因此必须捕获该异常。
- java基础(六)ArrayList、LinkedList、Vector的区别
- java基础(集合List-ArrayList、LinkedList、Vector的区别)
- java基础之集合List-ArrayList、LinkedList、Vector的区别
- java基础之ArrayList与LinkedList以及Vector的区别
- Java 的Vector, ArrayList, LinkedList 区别简述
- Java中Vector、ArrayList、LinkedList的区别
- java ArrayList Vector LinkedList的区别
- Java中ArrayList、Vector、 LinkedList的区别
- Java ArrayList、LinkedList、Vector的区别
- Java基础----ArrayList、LinkedList、Vector
- Java Vector ArrayList LinkedList 区别
- ArrayList,LinkedList,Vector的区别
- LinkedList ArrayList Vector的区别
- Vector,ArrayList, Linkedlist的区别
- Arraylist,LinkedList,vector的区别
- ArrayList、LinkedList、Vector的区别
- ArrayList,Vector,LinkedList的区别
- ArrayList LinkedList Vector的区别
- 算法:Flatten Binary Tree to Linked List
- Linux命令行手动配置无线wiff网络 iwconfig
- mysql实现row_number() over
- C语言指针学习笔记二
- RealServer快速安装教程
- java基础(六)ArrayList、LinkedList、Vector的区别
- mysql中" ' "和 " ` "的区别
- HTML块级元素和行级元素
- Spring MultipartFile 上传 与 excel处理
- Thymeleaf教程 (六) 设置属性值
- mybatis+MySQL简单实例及错误解决
- 视觉资源合集
- python2与python3迭代器的使用
- 百度地图的SHA1密钥 IOS系统 获取方式