一线大厂面试真题——SortedSet和List异同点

71 阅读1分钟

问题分析

在面试过程中遇到的xx技术和xx技术的异同点问题。

大家必须要深刻了解这两种技术的特征和优缺点,如果单纯的去背诵,很难记住。

这个问题中,List大家都已经非常熟悉了。简单分享一下SortedSet(如图)。

在Java的整个集合体系中,集合可以分成两个体系,一个是Collection存储单个对象的集合,另一个是k-v结构的Map集合。

SortedSet是Collection体系下Set接口下的派生类,而Set集合的特征是不包含重复的元素的集合。

编辑

了解了这个特点,才能更加准确的回答这个问题。

问题解答

首先说一下相同点:

    1、都可以用来存储一组有序的元素。

    2、都支持随机访问和按照索引位置插入元素。

    3、都是派生自Collection接口

不同点:

    1、SortedSet是一个有序的集合,不允许元素的重复,而List是一个有序的列表,允许元素的重复。

    2、SortedSet可以按照元素的自然顺序或者自定义比较器进行排序,而List只能按照元素的添加顺序排序。

    3、在 SortedSet中,元素的添加和删除操作的时间复杂度为O(logn),而在List中,元素的添加和删除操作的时间复杂度为O(n),因为需要移动其他元素的位置。

    4、SortedSet可以方便地进行范围查询操作,例如获取某个区间内的元素,而List只能通过遍历实现范围查询。