List、Set和Map三者的区别【大白话Java面试题】

List、Set和Map三者的区别

  • 大白话回答

一、排序

  1. List:有序、可重复。
  2. Set:无序、不可重复的集合。重复元素会覆盖掉。
  3. Map:键值对,键唯一、值不唯一。Map 集合中存储的是键值对,键不能重复,值可以重复。

二、线程

  1. List:通过索引查找快,增删速度慢 。
  2. Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
  3. Map:根据键得到值,对 map 集合遍历时先得到键的 set 集合,对 set 集合进行遍历,得到相应的值。三.接口

三、插入元素的时间复杂度

  1. List:在列表中插入元素的时间复杂度是O(n),其中n是列表中元素的数量。
  2. Set:在集合中插入元素的时间复杂度是O(n),其中n是集合中元素的数量。
  3. Map:在Map中插入元素的时间复杂度是O(1)。
  • 详细描述
    举例来说,List 可以用来存储一组有序的元素,比如一张歌曲列表;Set 可以用来去重,比如统计一篇文章中出现过的单词;Map 可以用来存储键值对,比如存储学生的姓名和对应的学号。
    另外,Java 中还有一种有序的集合类型叫做 ArrayList,它也实现了 List 接口,但相比于普通的 List,ArrayList 的查询效率更高,而修改和删除操作的效率较低,因为需要移动其他元素的位置。
  • 18
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值