1.List是有序集合;Map和Set是无序集合。
2.List和Set是Collection接口的子接口;Map是一个接口。
3.List允许有重复对象;Set不允许有重复对象;Map可以有重复值但是键不可重复。
4.List可以有多个null;Set最多只允许有一个null;Map可以有多个null值但最多只有一个null键。
5.List和Set是单列数据集合;Map是存储键值对的双列数据集合。
6.List接口实现类
LinkedList
基于链表实现,链表内存是散列的,增删快,查找慢;
ArrayList
基于数组实现,非线程安全,效率高,增删慢,查找快;
Vector
基于数组实现,线程安全,效率低,增删慢,查找慢;
7.Map接口实现类
HashMap
基于 hash 表的 Map 接口实现,非线程安全,高效,支持 null 值和 null
键;
HashTable
线程安全,低效,不支持 null 值和 null 键;
LinkedHashMap
是 HashMap 的一个子类,保存了记录的插入顺序;
SortMap 接口
TreeMap,能够把它保存的记录根据键排序,默认是键值的升序排序
8.Set接口实现类
HashSet
底层是由 Hash Map 实现,不允许集合中有重复的值,使用该方式时需要重写 equals()和 hash Code()方法;
LinkedHashSet
继承于 HashSet,同时又基于 LinkedHashMap 来进行实现,底层使用的是 LinkedHashMap