List 和set 是实现了collection接口
List : 1. 可以允许重复的对象
2. 可以插入多个null元素
3. 是一个有序容器 , 保持了每个元素的插入顺序, 输出的顺序就是插入的顺序
4. 常用的实现类有 ArryList , LinkedList 和Vector ArryList最为流行 , 他提供了使用索引的随意访问, 而LinkedList 则对于经常需要从List中添加或删除元素的场合更为合适
Set : 1. 不允许重复对象
2. 无序容器, 你无法保证每个元素的存储顺序 , TreeSet 通过Comparator或者Comparable维护了一个排序顺序
3. 只允许一个null元素
4. Set接口最流行的几个实现类是HashSet ,LinkedHashSet 以及TreeSet 最流行的是基于HashMap实现的HashSet , TreeSet 还实现了 SortrdSet 接口
因此TreeSet是一个根据其compare() 和compareTo()的定义进行排序的有序容器
Map : 不是collection的子类接口或实现类 Map是一个接口
1. Map的每个Entry 都持有两个对象 , 也就是一个键一个值 , Map 可能会有持有相同的值对象但键对象必须是唯一的
2. TreeMap也通过Comparator 或者Comparable 维护了一个排序顺序
3. Map里你可以拥有随意个null 值但最多只能有一个null键
4. Map接口最流行的几个实现类是HashMap , LinkedHashMap , Hashtable 和TreeMap (HashMap , TreeMap最常用)
总结: list set map
- List中的元素,有序、可重复、可为空;
- Set中的元素,无序、不重复、只有一个空元素;
- Map中的元素,无序、键不重,值可重、可一个空键、多个空值