zoukankan      html  css  js  c++  java
  • ArrayList 和 Vector 的区别

    ArrayList Vector 的区别

     

    这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集合,

    即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以

    按位置索引号取出某个元素,并且其中的数据是允许重复的。

    接着说 ArrayList 与 Vector 的区别,这主要包括两个方面:

    1、同步性:

    Vector 是线程安全的,也就是说是它的方法之间是线程同步的,而 ArrayList 是线程

    序不安全的,它的方法之间是线程不同步的。如果只有一个线程会访问到集合,那最好是使

    用 ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程会访问到集合,那最

    好是使用 Vector,因为不需要我们自己再去考虑和编写线程安全的代码。

    备注:对于 Vector&ArrayList、Hashtable&HashMap,要记住线程安全的问题,记住

    Vector 与 Hashtable 是旧的,是 java 一诞生就提供了的,它们是线程安全的,ArrayList

    与 HashMap 是 java2 时才提供的,它们是线程不安全的。

    2、数据增长:

    ArrayList 与 Vector 都有一个初始的容量大小,当存储进它们里面的元素的个数超过

    了容量时,就需要增加 ArrayList 与 Vector 的存储空间,每次要增加存储空间时,不是只

    增加一个存储单元,而是增加多个存储单元,每次增加的存储单元的个数在内存空间利用与

    程序效率之间要取得一定的平衡。Vector 默认增长为原来两倍,而 ArrayList 的增长为原

    来的 1.5 倍。ArrayList 与 Vector 都可以设置初始的空间大小,Vector 还可以设置增长的

    空间大小,而 ArrayList 没有提供设置增长空间的方法。

  • 相关阅读:
    保持URL不变和数字验证
    centOS ftp key?
    本地环境测试二级域名
    linux 解决You don't have permission to access 问题
    php smarty section loop
    php header Cannot modify header information headers already sent by ... 解决办法
    linux部分命令
    Linux 里面的文件操作权限说明
    用IT网络和安全专业人士视角来裁剪云的定义
    SQL Server 2008 R2炫酷报表"智"作有方
  • 原文地址:https://www.cnblogs.com/ylsx/p/13121730.html
Copyright © 2011-2022 走看看