zoukankan      html  css  js  c++  java
  • Vector 、ArrayList、LinkedList比较

    这三者都可以随机访问,也就是支持通过索引查找数据。 都是有序(可以实现元素怎么进怎么出)

     Vector和ArrayList比较

    相同之处

    1 它们都是List

    它们都继承于AbstractList,并且实现List接口。

    3 它们都是通过数组实现的,本质上都是动态数组

    4 它们的默认数组容量是10

       

    不同之处

    1 线程安全性不一样

       ArrayList是非线程安全;
       而Vector是线程安全的,它的函数都是synchronized的,即都是支持同步的。
       ArrayList适用于单线程,Vector适用于多线程。

    2 对序列化支持不同

       ArrayList支持序列化,而Vector不支持;即ArrayList有实现java.io.Serializable接口,而Vector没有实现该接口。

    3 虽然默认容量都是10,但是Vector在构造函数中就初始化数组了,ArrayList是在add方法中,第一次添加元素时才初始化数组。
       

    4 容量增加方式不同

       逐个添加元素时,若ArrayList容量不足时,“新的容量”=“原始容量x3/2 ”。
       而Vector的容量增长与“增长系数有关”,若指定了“增长系数”,且“增长系数有效(即,大于0)”;那么,每次容量不足时,“新的容量”=“原始容量+增长系数”。若增长系数无效(即,小于/等于0),则“新的容量”=“原始容量 x 2”。

    ArrayList和LinkedList比较

    相同:

    1.它们都是List,可以通过索引访问。

    2.有序(可以实现怎么进怎么出)

    不同:

    1.底层实现不同:ArrayList是数组,LinkedList是双向链表

    2.ArrayList要扩容,linkedlist不用

  • 相关阅读:
    tornado硬件管理系统-数据存储与表格实时监控(8)
    db2 内存研究
    Oracle dml开始到commit期间的流程
    用户界面与业务逻辑的分离
    计算器核心算法——终结版
    计算器核心算法——中缀表达式转为后缀表达式
    计算器核心解析算法(上)
    Qt中的字符串类
    初探Qt中的消息处理
    计算器界面代码重构
  • 原文地址:https://www.cnblogs.com/xiaolovewei/p/9072504.html
Copyright © 2011-2022 走看看