【Java面试题】十二、List、Set、Map 之间的区别是什么?

List、Set 都是继承于 AbstractCollection 类的,它们的共同点都是只能存储一个对象。List 元素具有放入顺序,且元素可重复。而 Set 元素不具有放入顺序,且元素不可以重复。

Map 继承与 AbstractMap 类的,它不具有放入顺序,且是通过 key-value 形式存储的。

List 中常用类及特点

类名特点效率
LinkedList基于链表实现增删快,查找快
ArrayList线程不安全效率高
Vector线程安全效率低

Set中常用类及特点

类名底层原理特点
HashSet数组+哈希(jdk8之前)数组+红黑树(jdk8之后)效率高
LinkedHashSet哈希表+链表不能重复,有序

Map中常用类及特点

类名特点效率
HashMap线程不安全、允许空键值单线程效率高
HashTable线程安全单线程效率低
LinkedHashMap保存插入顺序速度慢
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值