Map接口特点
1)Map与Collection并列存在,用于保存具有映射关系的数据:key-value
2) Map中的key不可以重复,但value可以重复。如果第二次放入的和前面的key一样,但value不一样,相当于替换。
3)Map中的key和value都可以为null,但注意key为null的情况只能有一个,而value为null的情况可以有多个。
4)常用String类作为Map的key
5) key和value之间 存在单向一对一关系,通过key一定能找到value
6)Map存放数据的key-value示意图
一对k-v是放在一个HashMap$Node中的,又因为Node实现了Entry接口,有些也说一对k-v就是一个Entry
1)k-v最后是HashMap$Node node = newNode(hash,key,value,null)
2) k-v 为了方便程序员的遍历,还会创建EntrySet集合,该集合存放的元素的类型Entry,而一个Entry
对象就有k,v EntrySet<Entry<k,v>>,即: transient Set<Map.Entry<k,v>> entrySet
3)entrySet中,定义的类型是Map.Entry,但是实际上存放的还是HashMap$Node
这是因为 static class Node<k,v> implements Map.Entry<k,v>
4)当把HashMap$Node 对象存放到entrySet 就方便我们遍历,因为Map.Entry提供了重要方法 k getKey();v getValue();
posted on 2021-05-23 21:55 Love&Share 阅读(274) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~