- ArrayList 和 Vector
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 不是.