Java:Map与Collection,HashMap 与HashSet

本文深入解析Java集合框架,包括Map和Collection的区别,HashMap、TreeMap、Hashtable的特点与使用场景,以及遍历Map集合的常见方法。同时,对比了HashMap与HashSet的存储方式,探讨了线程安全性和效率的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Map

Map ,是一个接口 是双列集合的顶级
Collection 也是一个接口,是单列集合的顶级

Map:是以键值对的形式来进行存储(Key,Values);

Map 里的键都是唯一的,不能够重复, values是可以重复,每一个键只能对应一个值(一一对应,就是映射的关系)

Map 的具体实现类有 HashMap(重点) TreeMap Hashtable(比较少)

Map.Entry<K,V> 的解释 : 也就是map 有一个内部接口的名字叫Entry

map 常规的一些方法:(添加的方法) V put(K key,V value) 通过键值对来进行添加

移除的方法: V remove(Object key) 通过键来删除键值对 (没有根据索引来移除)

判断类型的方法: boolean containsKey(Object key) 判断这个键是否存在
boolean containsValue(Object value) 判断这个值是否存在
boolean isEmpty() 是否存在元素

获取性的方法: void clear() 清除所有的元素
V get(Object key) 通过键来获取值
int size() 获取集合的长度
Collection values() 获取所有的values()
Set keySet() 获取map中所有的键 返回值是一个Set

修改:根据键来修改值,键必须存在 V put(K key,V value)

Collection 与 Map
Collection 与 Map的区别
单列集合(存的数据都是独立) 双列集合 (以键值对进行存储)
单列集合的数据结构都是都是具体的数据 双列集合的数据结构都是正对与键
单列中的set集合不能出现重复的数据 双列集合是键不能出现重复的数据

双列集合的遍历方式:
1.获取到所有的key,来得到具体的值
2. 把每一组数据当成是一个整体来进行遍历

map集合里嵌套map 集合来进行遍历: 规律:从外层往内层剥皮

HashMap

父接口是map 它的存储方式也是以hash表的结构来进行存储 无序

(Map)
HashMap 与HashSet : 都是以hash表结构来进行存储(查询速度快) HashSet 相当于 map 里没有values 那一部分,只用去关注键的那一部分(hash值 与equals()来判断键是否重复)
HashMap:只关注键,不关注值(任意的值都可以,还可以重复 )

HashMap 的一个子类是LinkedHashMap: 也是数组加上双重链表来进行存储, 有序

Hashtable HashMap 的区别
1. 版本不一样: Hashtable 1.0 HashMap 1.2
2 Hashtable 不符合命名规范 HashMap 是符合
3. Hashtable 线程安全,效率地 HashMap 线程不安全 ,效率高
4. HashMap 已经替换掉 Hashtable 常用hashMap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值