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