java语言基础--List三个子类的特点
三个子类的特点:
ArrayList:底层数据结构是数组,效率高,增删慢;线程不安全,效率高;
Vector:底层数据结构是数组,效率高,增删慢;线程安全效率低;
LinkedList:底层数据结构是链表;查询慢,增删块,线程不安全,效率高;
区别与共同点:
-
Vector和ArrayList的区别
Vector是线程安全的,效率低
ArrayList是线程不安全的,效率高
共同点:都是数组实现的 -
ArrayList和LinkedList的区别
ArrayList底层是数组结果,查询和修改快
LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢
共同点:都是线程不安全的
ArrayList线程安全方案:
如果使用ArrayList去替代Vector的话,需要考虑线程安全的问题,有两种方案:
可以使用Collections工具类中的synchronizedList方法可以将ArrayList变成线程安全的
List list = Collections.synchronizedList(new ArrayList());
使用java.util.concurrent包下面的CopyOnWriteArrayList,使用方式跟ArrayList一样
浙公网安备 33010602011771号