集合_List三个子类的特点

List的三个子类的特点

    因为三个类都实现了List接口,所以里面的方法都差不多,那这三个类都有什么特点呢?

         ArrayList:底层数据结构是数组,查询快,增删慢。

        线程不安全,效率高。

        Vector:

    底层数据结构是数组,查询快,增删慢。

        线程安全,效率低。

        Vector相对ArrayList查询慢(线程安全的)

        Vector相对LinkedList增删慢数组结构)

        LinkedList:底层数据结构是链表,查询慢,增删快。

        线程不安全,效率高。

    这个三个子类有什么区别和共同点?

        Vector和ArrayList的区别

        Vector是线程安全的,效率低

        ArrayList是线程不安全的效率高

         共同点都是数组实现的

         ArrayList和LinkedList的区别

         ArrayList底层是数组结果,查询和修改快

         LinkedList底层是链表结构的增和删比较快,查询和修改比较慢

         共同点都是线程不安全的

在开发当中使用哪个?


Vector基本_上不再使用了,效率比较较低。

ArrayList线程安全的方案

如果使用ArrayList去替代Vector的话,需要考虑线程安全的问题,有两种方案:

    .可以使用Collections, I具类中的synchronizedList方法可以将ArrayList变成线程安全的

            List list = Collections . synchronizedList(new ArrayL ist());

     使用java.util.concurrent包下面的CopyOnWriteArrayList,使用方式跟ArrayList- -样

Category: Java基础教程标签: Java基 础教程Edit

你可能感兴趣的:(集合_List三个子类的特点)