vector过时的代替建议

原答案

https://stackoverflow.com/questions/1386275/why-is-java-vector-class-considered-obsolete-or-deprecated

vector过时的代替建议_第1张图片

Vector在每个单独的操作上同步。这几乎从来没有你想要做的。


通常你想同步整个操作序列。同步单个操作不太安全(例如,如果您遍历Vector,则仍需要取出锁以避免其他人同时更改集合,这会在迭代线程中导致ConcurrentModificationException),而且还速度较慢(为什么在一次足够的时候反复地重复锁定)?


当然,即使你不需要,它也有锁定的开销。


基本上,在大多数情况下,这是一个非常有缺陷的同步方法。正如Brian Henk先生指出的那样,您可以使用诸如Collections.synchronizedList之类的调用来装饰集合 - Vector将“调整大小的数组”集合实现与“同步每个操作”位相结合的事实是设计不佳的另一个例子;装修方式让人更清楚地分离顾虑。

你可能感兴趣的:(其他)