ArrayList 和 Vector

这两个类都实现了List接口(List接口继承了Collection接口).

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

并且其中的数据是允许重复的

ArrayList与Vector的区别

  • Vector是线程安全的,
    也就是线程同步的,
    而ArrayList是线程序不安全的.
    对于Vector&ArrayList,
    Hashtable&HashMap,
    要记住线程安全的问题,
    记住Vector与Hashtable是旧的,
    是java一诞生就提供了的,
    它们是线程安全的,
    ArrayList与HashMap是java2时才提供的,
    它们是线程不安全的.
  • ArrayList与Vector都有一个初始的容量大小,
    当存储进它们里面的元素的个数超过了容量时,
    就需要增加ArrayList与Vector的存储空间,
    Vector默认增长为原来两倍,而ArrayList的增长策略在文档中没有明确规定(从源代码看到的是增长为原来的1.5倍).ArrayList与Vector都可以设置初始的空间大小,
    Vector还可以设置增长的空间大小,
    而ArrayList没有提供设置增长空间的方法.

总结:即Vector增长原来的一倍,ArrayList增加原来的0.5倍. Vector 线程安全, ArrayList 不是.