map接口

本文介绍了Map集合,它用于存放对象关系<K,V>,访问元素时需强制转换,可通过迭代器或增强for循环遍历。还阐述了Map不能有重复键,介绍了常用方法。此外,说明了HashMap底层结构、扩容机制,以及LinkedHashMap、TreeMap和泛型的相关内容。

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

Map 用来存放对象关系的集合<K,V>

集合中大多都是object  所有在访问元素时记得用(String) 进行强制转换

另外 记得用Iterator迭代器来遍历集合  还可以用增强for 循环来遍历集合   for ( object key : keys)

 

map中不能包含重复的键,值可以重复.后来的键会覆盖先前键所指值

常用方法

put(K,V) 前键后值,添加到Map集合中

get(K) 使用键作为参数获值

remove(K) 用键移除值

isEmpty 判断是否为空

containsKey(K)  判断键是否存在键

containsValue(V) 判断是否存在值

 

Set keys = map.keySet(); 返回当前map集合中所有的键集

Collection<String> col = map.value( )  返回当前map集中所有的值集

Set<Map.Entry<String,String>> set = map.entrySet();  获取当前map集合中的键值对集

Map.Entry 是类内接口.可以用来承接entrySet的返回值.有getKey和getValue 方法.

HashMap底层使用链表数组保存数据,(单向链表),在构造方法创建HashMap对象时,为加载因子赋值0.75,在第一次调用put方法存放元素时,初始化数组长度为16,在当前集合中键值对数量超过加载因子*数组长度时,扩容,按照原长度两倍扩容,扩容后,所有元素重新分散.

当存放键值对时,使用键的hashCode计算该键值对在数组中索引.如果该索引处无元素,则直接存储.如果该索引位置有元素,则存储到老元素的链接next属性上.当一个链表的元素数,达到八个时,并且数组长度超过64.则链表变红黑树.

 

 

LinkedHashMap

TreeMap

 

泛型

声明泛型,不需要强转可以直接获得string格式的字符串(不再是object)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值