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