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

    这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的——这是由List集合规范制订的。

    而且ArrayListVector底层都是基于数组的,因此它们的实现代码也大致相似。区别在于Vector是一个古老的集合,从JDK1.0开始就有了,因此它包含了大量方法名很长的方法,JDK 1.2开始引入集合框架,引入List接口,才让Vector实现了List接口,因此又增加了一些List接口中定义的方法。总体来说,ArrayList可以完全代替Vector,除了在一些很古老的API中强制要求使用Vector之外。

    Vector还有一个特征:它是线程安全的,因此性能比较差。而ArrayList并不是线程安全的,因此性能较好。实际上即使我们要在多线程环境下使用List集合,也应该选择ArrayList,而不是Vector,因为Java还提供了一个Collections工具类,它可以把ArrayList包装成线程安全的集合类,例如如下代码:

    List list = Collections.synchronizedList(new ArrayList());

     

  • 相关阅读:
    表的设计
    改善C#公共程序类库质量的10种方法和工具
    模块化编程
    Linux centOS本地DNS安装
    C#多线程解决界面卡死问题
    图解JOIN
    轻量级前端MVVM框架avalon
    免费的Visual Studio的插件
    Composite C1是一个.Net平台上开源专业的CMS开源项目
    NDepend 3.0已与Visual Studio集成
  • 原文地址:https://www.cnblogs.com/programb/p/14068498.html
Copyright © 2011-2022 走看看