集合异同点分析

ArrayList、Vector、LinkedList

线程安全底层数据结构JDK版本三方面分析。

  • (1) ArrayList、Vector

    共同点:
    底层数据结构都是数组,查询修改快,增删慢。
    不同点:
    ArrayList线程不安全,效率高;JDK1.2版本出现;
    Vector线程安全,效率低;JDK1.0版本出现。

  • (2) ArrayList、LinkedList

    共同点:
    线程不安全,效率高。
    不同点:
    ArrayList底层数据结构是数组,查询修改快,增删慢;
    LinkedList底层数据机构是链表,查询修改慢,增删快。

  • (3) Vector、LinkedList

    共同点:
    无。
    不同点:
    Vector线程安全,效率低;底层数据结构是数组,查询修改快,增删慢;JDK1.0版本出现;
    LinkedList线程不安全,效率高;底层数据机构是链表,查询修改慢,增删快;JDK1.2版本出现。

  • 三个类的共同点也可以谈:父类都是AbstractList,都实现了List接口。

HashMap、HashTable

共同点:
都是双列集合;底层都实现了Hash算法。
不同点:
HashMap线程不安全,效率高;键值均可为null值;JDK1.2版本出现;
HashTable线程安全,效率低;键值均不可为null值;JDK1.0版本出现。

你可能感兴趣的:(JavaSE)