List、Set、Map 三者区别(看这一篇就够了)

本文介绍了Java中List、Set、Map三大集合的区别和特性。List是有序集合,允许重复元素,查询快,增删慢,如ArrayList和LinkedList。Set是无序集合,不允许重复,增删快,如HashSet和TreeSet。Map为键值对集合,Key无序不可重复,常见实现有HashMap和HashTable。
摘要由CSDN通过智能技术生成

List、Set、Map这三个集合是我们经常使用的,面试经常会遇到,牢牢记住,搞定面试官。

List集合,Set集合都是继承Collection父接口

Map没有继承Collection父接口,Map是键值对集合(key到value的映射,是把键对象和值对象进行映射的集合。

1.List

list是一种有序集合,按照对象进入的顺序保存对象,并且允许重复对象,插入多个null值。

list查找效率快,但增删效率慢,增删会引起其他元素位置发生改变。

特点:有序,允许重复,查询快,增删慢

实现类有:

List 的实现类有 ArrayList、LinkedList、Vector

ArrayList和 Vector底层都是通过数组实现,两种类型在查询效率上会高很多,Vector 是线程安全的, ArrayList 线程不安全的,性能会稍慢一些。

LinkedList是线程不安全的,底层用链表结构存储数据的,适合数据的动态插入和删除,随机访问和遍历速度比较慢。

2.Set

set是无序的集合,不是按照对象进入的顺序保存,不可重复,只允许一个null值出现。

set检索元素效率低,而增删效率快,增删不会引起其他元素位置发生改变。

特点:无序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值