zoukankan      html  css  js  c++  java
  • 1-24List三个子类的特点

    List的三个子类的特点

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

    ArrayList:
    底层数据结构是数组,查询快,增删慢。
    线程不安全,效率高。
    Vector:
    底层数据结构是数组,查询快,增删慢。
    线程安全,效率低。
    Vector相对ArrayList查询慢(线程安全的)
    Vector相对LinkedList增删慢(数组结构)
    LinkedList:
    底层数据结构是链表,查询慢,增删快。
    线程不安全,效率高。
    这个三个子类有什么区别和共同点?

    Vector和ArrayList的区别

    Vector是线程安全的,效率低
    ArrayList是线程不安全的,效率高
    共同点:都是数组实现的

    ArrayList和LinkedList的区别

    ArrayList底层是数组结果,查询和修改快
    LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢
    共同点:都是线程不安全的

    在开发中使用哪个?

    查询多用ArrayList
    增删多用LinkedList
    如果都多ArrayList
    Vector基本上不再使用了,效率比较较低。

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

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

    List list = Collections.synchronizedList(new ArrayList());
    使用java.util.concurrent包下面的CopyOnWriteArrayList,使用方式跟ArrayList一样

  • 相关阅读:
    方法返回值使用哪个关键字?
    Java中带参数的方法和JavaScript中带参数的函数有什么不同?
    如何调用方法
    Java中如何声明方法?JavaScript中如何声明函数?
    为什么编程语言中要有方法
    什么叫方法.
    说说字符常量和字符串常量的区别
    什么是JDK?什么是JRE?说说它们之间的区别?
    Go 错误处理
    Go Defer
  • 原文地址:https://www.cnblogs.com/superfly123/p/10477619.html
Copyright © 2011-2022 走看看