List 和 Set 实现了 Collection 接口。
List:
允许重复的对象。
可以插入多个 null 元素。
是有序容器,保持了每个元素的插入顺序。
常用的实现类有 ArrayList、LinkedList 和 Vector。ArrayList,它提供了使用索引的随意访问,LinkedList 更合适经常添加或删除元素的场景。
Set:
不允许重复对象。
只允许一个 null 元素。
Set 接口最常用的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。HashSet 基于HashMap 实现;LinkedHashSet 按照插入排序;TreeSet 通过 Comparator 或 Comparable 接口实现排序。
Map:
是单独的顶级接口,不是 Collection 的子接口。
Map 的 每个 Entry 都持有两个对象,key 和 value,key 唯一,value 可为 null 或重复。
Map 接口常用的实现类有 HashMap、LinkedHashMap、Hashtable 和 TreeMap。
Hashtable 和 未指定 Comparator 的 TreeMap 不可为 null;HashMap、LinkedHashMap、指定 Comparator 的 TreeMap 的 key 可以为 null。