ArrayList、LinkList、Vector的区别

1、从初始化、扩容、线程安全三方面对比ArrayList与Vector

ArrayList采用懒加载策略(第一次add时才初始化内部数组,默认初始化大小为10)   扩容为原先数组大小的1.5倍。采用异步处理,线程不安全,性能较高     

ArrayList在大部分场合(80%,频繁查找、在集合末端插入与删除)都采用ArrayList

 

Vector在实例化对象时就初始化内部数组(大小为10),capacityIncrement默认为0,扩容为原先数组大小的2倍。采用synchronized修饰增删改查方法,线程安全,性能较低(锁的粒度太粗,将当前集合对象锁住,读读都互斥),即使要用性能安全的集合,也不推荐使用Vector

 

2.LinkedList采用异步处理,线程不安全  频繁在任意位置的插入与删除考虑使用LinkedList  LinkedList是Queue接口的常用子类

 

如果你的程序更多的是进行元素的随机访问或者从集合末端插入或删除元素,建议使用ArrayList;

如果更多的是进行随机插入和删除操作,LinkedList会更优。

posted @ 2020-07-15 15:10  林被熊烟岛  阅读(224)  评论(0编辑  收藏  举报