10、为什么Vector类认为是废弃的或者是非官方地不推荐使用?或者说为什么我们应该一 直使用ArrayList而不是Vector 你应该使用ArrayList而不是Vector是因为默认情况下你是非同步访问的,Vector同步了每 个方法,你几乎从不要那样做,通常有想要同步的是整个操作序列。同步单个的操作也不安 全(如果你迭代一个Vector,你还是要加锁, 以避免其它线程在同一时刻改变集合).而且效率更 慢。当然同样有锁的开销即使你不需要,这是个很糟糕的方法在默认情况下同步访问。你可 以一直使用Collections.sychronizedList来装饰一个集合。 事实上Vector结合了“可变数组”的集合和同步每个操作的实现。这是另外一个设计上的缺 陷。Vector还有些遗留的方法在枚举和元素获取的方法,这些方法不同于List接口,如果这 些方法在代码中
程序员更趋向于想用它。 尽管枚举速度更快, 但是他们不能检查如果集合在 迭代的时候修改了, 这样将导致问题。 尽管以上诸多原因, oracle也从没宣称过要废弃Vector.