社区
Java SE
帖子详情
求助!java1.8中ConcurrentHashMap中的put方法用到了树,而get方法却用的链表获取呢?
plutoppppp
2020-07-22 11:27:22
RT!RT!RT!RT!RT!RT!RT!RT!RT!RT!
...全文
137
2
打赏
收藏
求助!java1.8中ConcurrentHashMap中的put方法用到了树,而get方法却用的链表获取呢?
RT!RT!RT!RT!RT!RT!RT!RT!RT!RT!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
plutoppppp
2020-07-22
打赏
举报
回复
结帖了,是我逗逼了,get方法中有个find函数,TreeNode重写了这个方法!!!!尴尬!!!!!!!!!!!
plutoppppp
2020-07-22
打赏
举报
回复
get方法,直接取得next进行比较,用的链表结构:
put方法,有转树的过程:
一文让你彻底理解
Java
HashMap和
ConcurrentHashMap
Java
中
的HashMap和
ConcurrentHashMap
是两种非常重要的数据结构,它们都是Map接口的实现,用于存储键值对数据。HashMap是非线程安全的,而
ConcurrentHashMap
则是为多线程环境设计的线程安全版本。 HashMap在
Java
1.7...
关于JDK
1.8
下的
ConcurrentHashMap
的put
方法
和get
方法
源码,以及红黑
树
的插入详解
获取
`key`的`hashCode`,通过`key`的`hashCode`右移`16`位后的值与原`key`的`hashCode`进行`或`运算,并且和`HASH_BITS = 0x7fffffff`进行`与`运算得到最终的`hashCode`值。这样做的目的是为了减少`hash`碰撞。 3....
JDK
1.8
的
ConcurrentHashMap
的put、get 工作原理
JDK
1.8
的
ConcurrentHashMap
put总结: 如果没有初始化就先调用initTable()
方法
来进行初始化过程 如果没有hash冲突就直接CAS插入 如果还在进行扩容操作就先进行扩容 如果存在hash冲突,就加锁来保证线程安全,...
关于jdk
1.8
中
ConcurrentHashMap
1.前言
Java
JDK升级到
1.8
后有些集合类的实现有了变化, ...HashMap(
1.8
)和
ConcurrentHashMap
(
1.8
) 底层都是hash表+
链表
+红黑
树
如果对红黑
树
不了解的可以查看https://blog.csdn.net/A980719/article/details/12
ConcurrentHashMap
(JDK
1.8
)put分析(一)
ConcurrentHashMap
和HashMap的put值过程有些类似,
ConcurrentHashMap
的结构也是table +
链表
+ 红黑
树
;在put值时,锁粒度是table的元素;也就是说,当put值时定位到table的第 i 个元素,那么就会给table[i]上锁;...
Java SE
62,625
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章