java面试八股文(三)List、Map

本文讨论了面试中常被问及的ArrayList、LinkedList在线程安全、数据结构和适用场景上的差异,以及HashMap及其变种(如LinkedHashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap)的区别。
摘要由CSDN通过智能技术生成

面试中经常会问到关于list和map的问题:
一、ArrayList和LinkList的区别?
1.关于线程安全问题,常常会有人说LinkList是线程安全的,这里说明一下,ArrayList和LinkedList都不是线程安全的,Vector是线程安全的
2.底层数据结构不同,ArrayList是基于数组实现的(动态数组),LinkedList是基于链表实现的(双向链表)。
3.适用的场景不一样,ArrayList适用于随机查询,LinkedList适用于增删,对于查询ArrayList比LinkedList效率高一些,因为ArrayList可以根据下标进行查询,而LinkedList需要移动指针从前往后依次查找;对于增删LinkedList比ArrayList效率高一些,因为ArrayList是数组,所以在其中进行增删操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动。
4.扩展一个小知识:ArrayList和LinkedList都是实现了List的接口,但是LinkedList还额外实现了Deque接口,所以可以当队列使用。
在这里插入图片描述
5.数据结构不同的具体分析可以看此博主详细分析有图有真相可以参考

二、HashMap
常见的面试题
具体分析 HashMap、LinkedHashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap区别

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕孑晨

请大家多多支持,后续不断更新

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值