社区
Java SE
帖子详情
map初始化时直接put
qq_23204557
2019-07-19 08:07:56
final Map<Character, Character> endStart =
new HashMap<Character, Character>()
{{
put(')','(');
put(']','[');
put('}','{');
}}
;
请问为什么可以这样操作?红色的两重花括号怎么解释?
...全文
545
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
经典详解,这一篇就全懂了
Hash
Map
是Java中基于哈希表实现的
Map
接口的非同步实例,结合了数组和链表的特性。其数据结构是链表散列,在
初始化
时
并未
直接
创建数组,而在put操作
时
进行。Hash
Map
的存储操作包括hash计算,通过key.hashCode()的高16位异或低16位确定数组索引。在putVal方法中,如果发生冲突,会根据元素类型是链表还是树形结构进行处理。扩容机制巧妙,当元素数量超过阈值
时
,容量翻倍并重新分布元素,减少碰撞。
Map
中的put、putIfAbsent、compute、computeIfAbsent、computeIfPresent使用方法
博客围绕Java中
Map
赋值方法展开。
Map
是软件开发常用数据结构,可用于缓存等场景。详细介绍了put、putIfAbsent、compute、computeIfAbsent、computeIfPresent等赋值方法的区别及使用场景,如computeIfAbsent可简化
map
值为列表
时
的操作。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章