List 和 Set 集合的区别

落日映苍穹つ 2023-10-14 11:53 57阅读 0赞

相同点:

List、Set都继承自Collection接口

区别:

1.元素的顺序: List 是有序集合(元素按照插入顺序排序),而 Set 是无序集合(不保证元素的顺序)。

注:元素在Set中的位置是由该元素的HashCode决定的,其位置是固定的

2.元素的唯一性: List 中可以包含重复元素,而 Set 中不允许有重复元素。当向 Set 中添加重复元素时,新的元素将被忽略。

3.实现类不同: List 可以使用数组、链表等数据结构实现,常用的实现类有 ArrayList、LinkedList 和 Vector。而 Set 的实现通常使用哈希表或树等数据结构,常用的实现类有 HashSet、LinkedHashSet 和 TreeSet。

4.时间复杂度不同: List 通常提供了更多的操作方法,如添加、删除、遍历、获取指定位置的元素等,但某些操作的时间复杂度可能较高。例如,在 ArrayList 中插入或删除一个元素需要移动后续元素的位置,这样的操作可能需要 O(n) 的时间复杂度。Set 中虽然提供的操作方法相对较少,但在大部分情况下,Set 的操作时间复杂度都比 List 更低。

5.支持的遍历方式不同: List 支持for循环,也就是通过下标来遍历,也可以通过迭代器遍历。Set只能用迭代器遍历,因为没有索引下标。

总之,List 和 Set 在元素的顺序、唯一性、实现方式和时间复杂度等方面存在差异。开发者应根据需求选择适当的集合类型来存储数据。如果需要保留元素的顺序并且允许重复元素,可以选择 List;如果需要去除重复元素并且不关心元素的顺序,可以选择 Set。

up-68474b501b311d95e3e3fa020841ba3916c.png

发表评论

表情:
评论列表 (有 0 条评论,57人围观)

还没有评论,来说两句吧...

相关阅读