Vector,ArrayList,LinkedList,SynchronizedList

总体来说,Vector和ArrayList是一致的,实现的接口也是完全一样,内部的存储结构也基本一致【都是数组】,每个方法的实现也几乎相同。

区别在于,Vector是线程安全的,每个方法都加了synchronized修饰符,而ArrayList没有。

而且Vector是JDK1.0引入的,而ArrayList是JDK1.2引入的。

==================================强大的分割线======================================

再来说ArrayList和LinkedList的区别,上面说过ArrayList内部是数组实现的,LinkedList内部是链表实现的。

因此,当遇到读取比较多,插入、删除比较少的时候,推荐使用ArrayList,毕竟数组读取速度飞快,插入删除速度需要移动大量元素;而当遇到插入删除比较多的时候,推荐使用LinkedList。

==================================强大的分割线======================================

在Java集合工具类Collections中,提供了一个Collections.synchronizedList方法,可以传入一个List对象,返回出一个SynchronizedList。

SynchronizedList只是提供了一个对List对象的封装,对List的每个操作都添加了synchronized修饰,基本上与Vector一致,只是用法不同而已。比如现在已经有个LinkedList,如果想要一个线程安全的List,只需执行Collections.synchronized(linkedList)即可,没有任何的元素拷贝操作,此时,如果用Vector实现,则必须遍历LinkedList,将其中的每一个元素拷贝到Vector中。

==================================强大的分割线======================================

时间: 2024-08-25 09:52:51

Vector,ArrayList,LinkedList,SynchronizedList的相关文章

vector,arraylist, linkedlist的区别是什么

LinkedList类 LinkedList实现了List接口,允许null元素. 此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部. LinkedList不是同步的(不是线程安全). 实现线程安全:List list = Collections.synchronizedList(new LinkedList(...)); 增删快,查询慢. ArrayList类 ArrayList实现了可变大小的数组.它允许null. ArrayList

Vector ArrayList LinkedList

三者都实现了List接口! Vector与ArrayList:采用顺序存储的方式,但是Vector是线程安全的,ArrayList是线程不安全的,按需使用: 当存储空间不足的时候,ArrayList默认增加为原来的50%,Vector默认增加为原来的一倍即100%(Vector可以设置容量增长参数): 底层都是Object数组存储数据. LinkedList: 采用链表存储的方式.线程不安全. 原文地址:https://www.cnblogs.com/DDiamondd/p/11293773.h

Java ArrayList、Vector和LinkedList等的差别与用法(转)

Java ArrayList.Vector和LinkedList等的差别与用法(转) ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都容许直接序号索引元素,然则插入数据要设计到数组元素移动等内存操纵,所以索引数据快插入数据慢,Vector因为应用了synchronized办法(线程安然)所以机能上比ArrayList要差,LinkedList应用双向链表实现存储,按序号索引数据须要进行向前或向后遍历,然则插入数据时只须要记录本项的

List ArrayList LinkedList vector简介与区别

ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下: ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全 LinkedList:底层用双向循环链表 实现的List 特点:查询效率低,增删效率高 Vector: 底层用数组实现List接口的另一个类 特点:重量级,占据更多的系统开销 线程安全 一.同步性 ArrayList,LinkedList是不同步的,而Vestor

ArrayList、Vector、LinkedList的区别及其优缺点? (转载)

原文链接:http://blog.csdn.net/wangzff/article/details/7296648 ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下: 一.同步性 ArrayList,LinkedList是不同步的,而Vestor是同步的.所以如果不要求线程安全的话,可以使用ArrayList或 LinkedList,可以节省为同步而耗费的开销.但在多线程的情况下,有时候就不得不使用Vecto

ArrayList、Vector、LinkedList的区别联系?

1.ArrayList.Vector.LinkedList类都是java.util包中,均为可伸缩数组. 2.ArrayList和Vector底层都是数组实现的,所以,索引数据快,删除.插入数据慢. ArrayList采用异步的方式,性能好,属于非线程安全的操作类.(JDK1.2) Vector采用同步的方式,性能较低,属于线程安全的操作类.(JDK1.0) 3.LinkedList底层是链表实现,所以,索引慢,删除.插入快,属于非线程安全的操作类.

ArrayList LinkedList Vector

ArrayList是基于数组实现的,没有容量的限制. 在删除元素的时候,并不会减少数组的容量大小,可以调用ArrayList的trimeToSize()来缩小数组的容量. ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下: ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全 LinkedList:底层用双向循环链表 实现的List 特点:查询效率低,增删效率高 Ve

【java】ArrayList、Vector、LinkedList的区别

ArrayList.Vector.LinkedList同属于List接口,都存在于java.util包中,都是可伸缩数组,可以动态改变长度. ★ArrayList和Vector都是基于存储元素Object[] array来实现的,它们会在内存中开辟一段连续的空间来存储,因为数据存储是连续的,所以它们支持用下标的方式来访问数据,而且索引数据的速度会比较快,也正因为存储是连续的,在其中插入新的元素时需要移动数据,所以在插入数据时执行速度会比较慢. 在未定义容量大小时,ArrayList和Vector

ArrayList/LinkedList/Vector源码分析

ArrayList public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable ArrayList继承了AbstractList,实现了List,表示ArrayList实现了线性表的所有功能,本质上是一个Object数组: ArrayList实现了RandomAccess接口,表示提供随机访问功能,A