JAVA面试——List(列表)与Set(集)、Map(映射)区别及适用场景

  • List和set都是继承自Collection接口,map不是在这里插入图片描述

  • List有序放入元素可重复;Set无序放入,元素重复会覆盖在这里插入图片描述

  • List支持索引(下标)遍历,也可以用迭代器;Set因为无序只能用迭代,无法用下标取得想要的值!List的索引和迭代遍历

Set无法使用索引遍历
Set迭代器遍历

  • List查找元素效率高,增删元素效率低,因为会引起元素位置改变;Set反之

  • map适合存储键值对数据

ArrayList与LinkedList的区别和适用场景

ArrayList底层是数组,LinkedList底层是链表。所以arrayList查询块,LinkedList增删块。

适用场景

  • ArrayList:查询多,增删少
  • LinkedList:增删多,查询少

一般情况下LinkedList更占空间

ArrayList与Vector的区别和适用场景

Vector多线程安全,ArrayList不是。空间不足时,扩容方式不同

适用场景

  • 不考虑线程安全时,一般使用ArrayList

HashSet与TreeSet的区别和适用场景

TreeSet是二叉树实现,数据是自动排序好的,不允许放入null。HashSet是哈希表实现的,数据无序可以放入null。

Map

map中的集合,元素是成对存在的。每个元素由键与值两部分组成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值