zoukankan      html  css  js  c++  java
  • ArrayList和Vector区别及源码

    本文基于jdk1.7

    1.ArrayList

                          类图来自:作者 Java3y

     源码分析:

    1.1 属性

    1.2 构造方法

    Arrays.copyOf源码:

    1.3 trimToSize方法, 修改当前 ArrayList实例的容量为存入的实际值数量的大小。 

    1.4 扩容方法,以确保它可以至少保存mincapacity个元素数(扩容原理:以1.5倍进行扩容,使用Array.copyOf复制数组到新的数组,并且使用扩容后的新数组的引用

    1.5 grow扩容算法,增加原来的1.5倍

    1.5 add 向ArrayList中添加元素(一直调用系统方法插入元素,所以特别消耗资源)

     1.6 remove方法

    2.Vector

    2.1成员变量

    2.2 构造方法

    2.3 扩容方法

    综上所述:

    两者之间的区别:

    1.ArrayList是线程不安全的,而Vector是线程安全的。

    2.ArrayList扩容大小是原来的0.5倍,而Vector是原来的1倍,并且Vector可以设置扩容大小,ArrayList则不可以设置,但是两者都是通过Arrays.copyOf()方法进行扩容的。

    3.ArrayList效率高于Vector。

    4.两者都可以设置初始数组的大小,

  • 相关阅读:
    DB2完美卸载
    protobuf2.5 iphone5s中崩溃的问题
    由fprintf和printf看C语言三种标准流
    AIR加载PDF
    使用二叉堆实现优先队列
    11636
    apache archiva安装教程
    WP独立文件资源字典
    常用软件架构模式(收集)
    MATLAB——单层感知器
  • 原文地址:https://www.cnblogs.com/teiba/p/9017316.html
Copyright © 2011-2022 走看看