Java基础知识之list和set的区别及相关面试题

一.集合框架的家族图(map先不做比较)
在这里插入图片描述
二list和set的区别
list与set方法的区别有:list可以允许重复对象和插入多个null值,而set不允许;list容器是有序的,而set容器是无序的
List方法与set方法的区别
(1)重复对象
list方法可以允许重复的对象,而set方法不允许重复对象
(2)null元素
list可以插入多个null元素,而set只允许插入一个null元素
(3)容器是否有序
list是一个有序的容器,保持了每个元素的插入顺序。即输出顺序就是输入顺序,而set方法是无序容器,无法保证每个元素的存储顺序,TreeSet通过 Comparator 或者 Comparable 维护了一个排序顺序

三.常见面试题:
(1)List和Set的区别?
List可以包含重复元素,而Set包含唯一项。
List是一个有序集合,它维护插入顺序,而Set是一个无序集合,不保留插入顺序。
List接口包含一个遗留类:Vector类,而Set接口没有任何遗留类。
List接口可以允许n个null值,而Set接口只允许一个null值。

(2)HashSet和TreeSet的区别?
HashSet不保持顺序,而TreeSet维持升序。
HashSet由哈希表表示,而TreeSet由树结构实现。
HashSet比TreeSet执行得更快。
HashSet由HashMap支持,而TreeSet由TreeMap支持。

(3)Collection和Collections有什么区别?
Collection和Collections之间的差异如下: Collection是一个接口,而Collections是一个类。Collection接口为List,Set和Queue提供数据结构的标准功能。 但是,Collections类用于对集合元素进行排序和同步。Collection接口提供可用于数据结构的方法,而Collections类提供可用于对集合进行各种操作的静态方法。

(4)Comparable和Comparator有什么区别?
在这里插入图片描述

发布了99 篇原创文章 · 获赞 2 · 访问量 2603

猜你喜欢

转载自blog.csdn.net/weixin_41588751/article/details/105107126