一,线程安全
ArrayList和LinkedList都是线程不安全的,用在单线程环境中。如果一定在并发环境下使用,需要雍Collections类的synchronized()方法来调用。
Vector则是线程安全的,它的大部分方法都有关键字synchronized,但是效率没有前两者高。
二,扩容机制
ArrayList和Vector底层都是由Object的数组形式实现的,当进行扩容时,ArrayList扩容为1.5倍,Vector则变为原来的二倍。
可变长度数组的原理:当元素个数超过数组长度时,会产生一个新数组,将原数组的数据复制到新数组,再将新的元素添加到新数组中。
三,增删改查的效率
如果只查找指定特定位置的元素或只在集合末尾增加移除元素,那么用Vector或ArrayList
如果是其他位置的插入删除最好选择LinkedList
本文深入解析ArrayList和Vector的线程安全性、扩容机制及增删改查效率,对比两者的性能特点,指导在不同场景下的合理选择。
1475

被折叠的 条评论
为什么被折叠?



