set和list都实现了collection的接口。
List
①、list有序的,列表通常允许重复的元素(可以允许多个重复对象)
②、列表元素里面可以null元素,通常允许有多个为null(可以插入多个null元素)
③、list 提供了特殊的迭代器(ListIterator)(是一个有序的容器,保证每个元素的插入的顺序,输入顺序也就是插入的顺序。)
④、常用的实现类有ArrayList、LinkedList和Vector。ArrayList是基于动态数组结构,最为流行,它提供使用索引的随意访问和方便修改,而LinkedList则需要对list中添加元素和删除元素的场景更为合适。
set:
①不包含重复元素的Collection(不允许有重复的对象)
②最多包含一个null元素(只允许有一个null元素)
③是一个无序容器,无法保证每个元素的存储顺序,TreeSet通过comparable或者comparator维护一个排序的顺序。
④set最流行的实现类有HashSet、LinkedHashSet和TreeSet。最流行基于HashMap实现的HashSet;TreeSet还实现了SortedSet接口,因此TreeSet是根据其一个comparator()和comparable()的定义进行排序的有序容器。