面试题——谈谈collection里面有什么子类。(想考察set和list区别)

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()的定义进行排序的有序容器。

猜你喜欢

转载自blog.csdn.net/hai1991yu/article/details/80622981