java-collection-List-Vector

vector 实现了一个可扩展数组对象。
与数组一样的,包含可使用的组件。
使用整数索引访问,然而,Vector的大小可以生长或者收缩根据Vector创建之后添加和移除items

每个vector视图通过维护一个{@code capacity} and a {@code capacityIncrement}.
优化存储管理。这个 {@code capacity} 至少和Vector大小一样。它通常更大,因为组件被添加到Vector Vector的存储增长以capacityIncrement块的大小。
应用程序可以增加vector 的容量 在插入大量的组件之前。这减少了增长重新分配的数量。

fail-fast

该类的Iterator和listIterator 方法 是fail-fast . 如果这个list 在任何时候修改结构 在迭代器创建之后,任何通过iterator自己的{@link ListIterator#remove() remove} or{@link ListIterator#add(Object) add}
方法,这个iterator 将会抛出{@link ConcurrentModificationException}
因此,面对并发修改,iterator 快速而干净失败,而不是在未来时间 不确定的 冒险的行为 。

注意,迭代器的故障快速行为不能得到保证,事实上,一般来说,不可能作出任何硬的保证,存在不同步的并发修改。故障快速迭代器在尽力的基础上抛出ConcurrentModificationException、
*因此,编写一个依赖于此异常正确性的程序是错误的。迭代器的fail-fast行为只用于检测缺陷。

Vector是同步的 如果一个线程安全的实现不需要,建议使用ArrayList替换Vector

猜你喜欢

转载自blog.csdn.net/qq_16038125/article/details/80887772