zoukankan      html  css  js  c++  java
  • 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()  等等。

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

  • 相关阅读:
    shell 统计行数
    sqlldr errors
    sqlldr 远程数据库
    load Properties
    查看shell 版本
    linux中的网络通信指令
    给EditText的drawableRight属性的图片设置点击事件
    p2p网贷3种运营模式
    p2p网贷3种运营模式
    linux常用的压缩与解压缩命令
  • 原文地址:https://www.cnblogs.com/Liang-Haishan216/p/6186920.html
Copyright © 2011-2022 走看看