2023年Java核心技术面试第四篇(篇篇万字精讲)
目录
八. 对比Vector,ArrayList, LinkedList有何区别?
8.1 典型回答
8.1.1 Vector:
8.1.2 ArrayList :
8.1.3 LinkedList
8.2 考察点分析:
8.2.1 不同容器类型适合的场景
八. 对比Vector,ArrayList, LinkedList有何区别?
8.1 典型回答
三者都是实现集合框架中的List,即有序集合,都按照位置进行定位,添加或者删除的操作,都提供迭代器进行遍历内容,由于具体的设计,在行为,性能,线程安全方面又有些不同。
8.1.1 Vector:
是Java早期提供的线程安全的动 态数组,如果不需要线程安全,不建议使用,同步需要进行额外开销,Vector内部使用对象数组来保存数据,可以根据需要自动的增加容量,当数组已满时,会创建新的数组,并且拷贝原有的数组数据
8.1.2 ArrayList :
是应用更加广泛的动态数组实现,本身不是线程安全的,性能好很多。
ArrayList可以根据需要调整容量,vector在扩容的时候会提高一倍,ArrayList则是增加50%
8.1.3 LinkedList
Java 提供的双向链表,不需要进行上面两种进行调整容量,也不是线程安全的。