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一样

  •  

posted on 2018-08-19 14:03  董大志  阅读(209)  评论(0)    收藏  举报

导航