Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别

ArrayList和Vector的区别

ArrayList与Vector主要从二方面来讲.  

一.同步性:

   Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的。

二.操做:

    因为Vector支持多线程操做,因此在性能上就比不上ArrayList了。

三.数据增加:

       ArrayList和Vector都有一个初始的容量大小,当存储进去它们里面的元素个数超出容量的时候,就须要增长ArrayList和Vector的存储空间,每次增长存储空间的时候不是只增长一个存储单元,是增长多个存储单元。

       Vector默认增长原来的一倍,ArrayList默认增长原来的0.5倍。

       Vector能够由咱们本身来设置增加的大小,ArrayList没有提供相关的方法。


LinkedList与ArrayList的区别

二者都实现的是List接口,不一样之处在于:

(1)、ArrayList是基于动态数组实现的,LinkedList是基于链表的数据结构。

(2)、get访问List内部任意元素时,ArrayList的性能要比LinkedList性能好。LinkedList中的get方法是要按照顺序从列表的一端开始检查,直到另外一端

(3)、对于新增和删除操做LinkedList要强于ArrayList,由于ArrayList要移动数据

       LinkedList实现了List接口,容许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操做使LinkedList可被用做堆栈(stack),队列(queue)或双向队列(deque)。

       注意LinkedList没有同步方法。若是多个线程同时访问一个List,则必须本身实现访问同步。一种解决方法是在建立List时构造一个同步的List:

List list = Collections.synchronizedList(new LinkedList(…));



数组(Array)和列表集合(ArrayList)的区别数组


  Array能够包含基本类型和对象类型,ArrayList只能包含对象类型。

  Array大小是固定的,ArrayList的大小是动态变化的。

  ArrayList提供了更多的方法和特性,好比:addAll(),removeAll(),iterator()  等等。

  对于基本类型数据,集合使用自动装箱来减小编码工做量。可是,当处理固定大小的基本数据类型的时候,这种方式相对比较慢。安全

相关文章
相关标签/搜索