社区
Java SE
帖子详情
map初始化时直接put
qq_23204557
2019-07-19 08:07:56
final Map<Character, Character> endStart =
new HashMap<Character, Character>()
{{
put(')','(');
put(']','[');
put('}','{');
}}
;
请问为什么可以这样操作?红色的两重花括号怎么解释?
...全文
546
3
打赏
收藏
map初始化时直接put
final Map endStart = new HashMap() {{ put(')','('); put(']','['); put('}','{'); }}; 请问为什么可以这样操作?红色的两重花括号怎么解释?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
臭小子帅
2019-07-19
打赏
举报
回复
https://blog.csdn.net/wuxianjiezh/article/details/90267142 还有这个
臭小子帅
2019-07-19
打赏
举报
回复
https://blog.csdn.net/liubo2012/article/details/8591956 看下这个
AI-Neura
2019-07-19
打赏
举报
回复
我觉得双括号是二维数组String[][] strings={{"1","2"}};
java new list
map
_java中
Map
和List
初始化
的两种方法
博客介绍了Java中List和
Map
的
初始化
方法。常用方法是先创建对象,再通过add或put方法添加元素;双括号
初始化
法是在创建对象
时
直接
添加元素,给出了两种方法的代码示例。
简述Hash
Map
的put过程+源码解析
Hash
Map
在put元素
时
,首先计算key的hashCode并处理,然后检查table是否已
初始化
,未
初始化
则
初始化
为16。接着根据hashCode计算数组下标,如果下标处为空则
直接
插入新节点,否则遍历链表或红黑树,找到key相同的节点进行value替换或新节点插入。当链表长度超过8
时
,会转为红黑树。若
map
容量达到75%,会进行2倍扩容。整个过程兼顾了哈希分布和查找效率。
FAQ:空指针报错 java.util.concurrent.ConcurrentHash
Map
.get(ConcurrentHash
Map
.java:936)
博客介绍了ConcurrentHash
Map
和Hash
Map
的containsKey方法区别。
Map
接口的containsKey方法可接受null入参,但实现类可能不接受。ConcurrentHash
Map
调用该方法
时
,key为空会抛空指针错误;而Hash
Map
可将null作为key,put元素后分配空间,
初始化
时
无存储空间,table为空
时
containsKey
直接
返回null。
Hash
Map
源码解析(
初始化
及put方法)
Hash
Map
基于数组+链表的结构实现,内部使用Node作为Entry。在put
时
,通过hashcode运算确定存储位置,避免哈希冲突。当链表长度达到8
时
,转换为红黑树。
初始化
时
,如果数组为空,会创建默认容量的数组。put过程包括:检查数组位置、处理key冲突、判断是否转为红黑树。合理的初始容量可以优化性能,避免过多的扩容和重hash操作。
Map
中的put、putIfAbsent、compute、computeIfAbsent、computeIfPresent使用方法
博客围绕Java中
Map
赋值方法展开。
Map
是软件开发常用数据结构,可用于缓存等场景。详细介绍了put、putIfAbsent、compute、computeIfAbsent、computeIfPresent等赋值方法的区别及使用场景,如computeIfAbsent可简化
map
值为列表
时
的操作。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章