ArrayList 和 Vector 这两种数据结构有什么区别,应该在哪里使用它们?
差异
如果没有使用 Vectors 的特定要求,请使用 ArrayLists。
同步
如果多个线程同时访问一个 ArrayList,那么我们必须在外部同步修改列表的代码块,该代码块要么在结构上修改列表,要么只修改一个元素。结构修改意味着从列表中添加或删除元素。设置现有元素的值不是结构修改。
Collections.synchronizedList通常在创建列表时使用,以避免对列表的任何意外不同步访问。
Collections.synchronizedList
数据增长
在内部,ArrayList 和 Vector 都使用 Array 保存它们的内容。将元素插入 ArrayList 或 Vector 时,如果对象空间不足,则需要扩展其内部数组。 Vector 默认将其数组大小增加一倍,而 ArrayList 将其数组大小增加 50%。