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版本出现。