写点什么

hashmap

2 人感兴趣 · 40 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/62/62699238f5c67314a969d51273e28d53.png?x-oss-process=image/resize,w_416,h_234

工作三年,小胖连 HashMap 源码都没读过?真的菜!

在 JDK 1.7 中 HashMap 是以数组加链表的形式组成的,JDK 1.8 之后新增了红黑树的组成结构,当链表长度大于 8 并且 hash 桶的容量大于 64 时,链表结构会转换成红黑树结构。所以,它的组成结构如下图所示:

https://static001.geekbang.org/infoq/ee/eedae52d2cadddb70e8956daf76e243a.jpeg?x-oss-process=image/resize,w_416,h_234

基于拉链式和线性探测式散列表实现 Map

用户头像
Silently95274 月 13 日

程序员必读书单:https://github.com/silently9527/ProgrammerBooks

https://static001.geekbang.org/infoq/08/08d2ae8db80fb80c240c27cbb7f4130a.webp?x-oss-process=image/resize,w_416,h_234

并发的 HashMap 为什么会引起死循环?

用户头像
Java小咖秀4 月 9 日

今天研读 Java 并发容器和框架时,看到为什么要使用 ConcurrentHashMap 时,其中有一个原因是:线程不安全的 HashMap, HashMap 在并发执行 put 操作时会引起死循环,是因为多线程会导致 HashMap 的 Entry 链表形成环形数据结构,

https://static001.geekbang.org/infoq/89/896e5d0b2868021e4eb1b7aae2174449.jpeg?x-oss-process=image/resize,w_416,h_234

HashMap 加载因子为什么是 0.75?

用户头像
java_wxid3 月 30 日

如果加载因子比较大,扩容发生的频率比较低,浪费的空间比较小,发生hash冲突的几率比较大。比如,加载因子是1的时候,hashmap长度为128,实际存储元素的数量在64至128之间时间段比较多,这个时间段发生hash冲突比较多,造成数组中其中一条链表比较长。

https://static001.geekbang.org/infoq/97/97add2c460a353b2e427a3274764b856.jpeg?x-oss-process=image/resize,w_416,h_234

Hashmap 的重要变量与高频面试题整理(含答案)

用户头像
Java王路飞3 月 27 日

源码中定义了很多常量,有几个是特别重要的。

https://static001.geekbang.org/infoq/9a/9a4a4e35b26e13be3ef56f31ae168d53.png?x-oss-process=image/resize,w_416,h_234

盘点 HashMap 的实现原理及面试题

用户头像
老王说编程3 月 9 日

如果被问到 HashMap 相关的问题,它的工作原理都会被作为面试的开场白,这个时候先装作若有所思的样子冷静一下。首先 HashMap 是基于 hashing 的原理,我们知道 HashMap 有两个常用的方法 put()、get(),将键值对传递给 put() 方法时,

https://static001.geekbang.org/infoq/5c/5cf97047ea6a1be29a4ef183e89ca4b8.jpeg?x-oss-process=image/resize,w_416,h_234

程序员必须知道的数据结构:HashMap 与 LinkedHashMap

用户头像
老王说编程3 月 6 日

为什么要说 HashMap 与 LinkedHashMap?第一:这两种数据结构是 Java Coder 中经常使用的数据结构、第二:这两种结构是最合适的能说明链表与数组的结构关系。在开始之前首先必须清楚一个概念,什么是 hash 值?hash 值是指将一个二进制的值通过 hash 算法将其

https://static001.geekbang.org/infoq/d1/d1a8f6765f0685f4a023be3bc1a96485.png?x-oss-process=image/resize,w_416,h_234

Java 容器 --2021 面试题系列教程(附答案解析)-- 大白话解读 --JavaPub 版本

用户头像
JavaPub2 月 10 日

Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本

面试官:高并发下 HashMap 的死循环是怎么形成的?

用户头像
Crud的程序员2 月 7 日

师傅,我常常听别人说,不要在并发情况下使用HashMap,可能会出现死循环,这个死循环是怎么形成的呢?

https://static001.geekbang.org/infoq/a7/a70cd76ad586c145dc07765a9dedf74a.jpeg?x-oss-process=image/resize,w_416,h_234

深入了解 HashMap!

用户头像
xcbeyond1 月 26 日

HashMap的扩容机制是要必懂知识!结合图片一起理解!

https://static001.geekbang.org/infoq/a7/a73bb1c201dc2a0785d830cf0bfe652e.png?x-oss-process=image/resize,w_416,h_234

了解 HashMap 数据结构,超详细!

用户头像
程序员的时光2020 年 10 月 23 日

面试必备HashMap,这里详细写明了各个关于HashMap面试要点; 适合初学者学习以及面试使用

HashMap 源码解析

用户头像
彭阿三2020 年 9 月 24 日

HashMap 底层数据结构以及原理

从基础到实践,一文带你看懂 HashMap

用户头像
华为云开发者社区2020 年 9 月 23 日

摘要:HashMap是一个用于存储Key-Value键值对的集合,它是面试中经常问到的一个知识点。

https://static001.geekbang.org/infoq/41/41df3c7d266ff6e712e4bba1d2808477.png?x-oss-process=image/resize,w_416,h_234

HashMap 的 7 种循环姿势你都掌握了吗?

用户头像
java金融2020 年 9 月 21 日

HashMap的循环姿势你真的都掌握了吗?

Java ConcurrentHashMap 高并发安全实现原理解析

用户头像
vivo互联网技术2020 年 9 月 21 日

深挖 Java ConcurrentHashMap高性能和线程安全的底层支撑,运用并发和线程安全的基本理论验证其为何这么设计,以及如何保证安全。

HashMap 将 cpu 打满始末

用户头像
林昱榕2020 年 9 月 13 日

详细分析HashMap产生死循环导致打满cpu的全过程

https://static001.geekbang.org/infoq/53/5347b656e237f9b138d03e75cb2216d8.jpeg?x-oss-process=image/resize,w_416,h_234

巧用 HashMap 一行代码统计单词出现次数

用户头像
程序那些事2020 年 8 月 30 日

JDK是在一直在迭代更新的,很多我们熟悉的类也悄悄的添加了一些新的方法特性。比如我们最常用的HashMap。

https://static001.geekbang.org/infoq/a5/a5e7b08c2f247843b9c0fced62334025.jpeg?x-oss-process=image/resize,w_416,h_234

面试 28k 职位,老乡面试官从 HashCode 到 HashMap 给我讲了一下午!「回家赶忙整理出 1.6 万字的面试材料」

用户头像
小傅哥2020 年 8 月 23 日

不是面试难,而是30岁要有30岁的能力,35岁要有35岁的经历! 本文从HashCode讲到HashMap,从一个小小的知识点扩展的理论实践验证,10来万单词表的数据验证;数据分布、扰动函数、负载因子、数据迁移等各项核心数学知识,非常适合即将跨入高开的程序员学习。

解析 HashMap 源码概括

用户头像
shengjk12020 年 8 月 16 日

本系列主要解析 jdk8 的 HashMap 源码,首先会从经常使用方法为入口点,一点点打开我们队 HashMap 的理解。

解析 hashMap 源码之基本操作 get

用户头像
shengjk12020 年 8 月 16 日

接下来就是 getNode 操作

解析 HashMap 源码之基本操作 put

用户头像
shengjk12020 年 8 月 16 日

之前一直都在使用 HashMap 做一些操作,心里常常默认 HashMap 很快 ,从未做过深究。现在看过源码之后才发现 HashMap 的效率并没有想象中的那么高,O(1) O(n) O(tab数据length * 链表length) 均有可能,并且也不太适合存储大量数据。

https://static001.geekbang.org/infoq/e3/e342f09ee44dee6391799337b1a8e83b.jpeg?x-oss-process=image/resize,w_416,h_234

面经手册 · 第 4 篇《HashMap 数据插入、查找、删除、遍历,源码分析》

用户头像
小傅哥2020 年 8 月 13 日

HashMap核心源码分析,学习哈希碰撞处理、链表树化、红黑树转链表以及Set遍历中的元素顺序是如何处理的。

https://static001.geekbang.org/infoq/a7/a748a8d4349ee06f9783682720dd8d1e.png?x-oss-process=image/resize,w_416,h_234

面试这么撩准拿 offer,HashMap 深度学习,扰动函数、负载因子、扩容拆分,原理和实践验证,让懂了就是真的懂!

用户头像
小傅哥2020 年 8 月 10 日

散列表实现?扰动函数?初始化容量?负载因子?扩容元素拆分?🕵HashMap理论学习+实践验证,让懂了就是真的懂!

https://static001.geekbang.org/infoq/e4/e4725e0045376f7851adfd41b10a3062.png?x-oss-process=image/resize,w_416,h_234

没想到 Hash 冲突还能这么玩,你的服务中招了吗?

用户头像
石头2020 年 7 月 25 日

其实这个问题我之前也看到过,刚好在前几天,洪教授在某个群里分享的一个《一些有意思的攻击手段.pdf》,我觉得这个话题还是有不少人不清楚的,今天我就准备来“实战”一把,还请各位看官轻拍。

https://static001.geekbang.org/infoq/63/63a4734a40a045eb7826bccc1513bd94.jpeg?x-oss-process=image/resize,w_416,h_234

有趣的条漫版 HashMap,25 岁大爷都能看懂

用户头像
古时的风筝2020 年 7 月 16 日

我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农!文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面。回复「666」有高清学习路线图。

https://static001.geekbang.org/infoq/bc/bcb106f855f3446d7613c0332d5fa792.jpeg?x-oss-process=image/resize,w_416,h_234

HashMap 学习总结

用户头像
大刘2020 年 7 月 14 日

HashMap的学习总结,了解HashMap的时间复杂度,Hash冲突的解决方法,以及Java里HashMap的存储结构

https://static001.geekbang.org/infoq/ba/ba3c724c3e06037df6a5d87f6afc10e0.jpeg?x-oss-process=image/resize,w_416,h_234

面试官:如何决定使用 HashMap 还是 TreeMap?

用户头像
爱嘤嘤嘤斯坦2020 年 7 月 14 日

问:如何决定使用 HashMap 还是 TreeMap?

https://static001.geekbang.org/infoq/cf/cfdf67300914e4932a0b8d1a94f6d108.png?x-oss-process=image/resize,w_416,h_234

一篇文章深入理解 JDK8 HashMap

用户头像
itlemon2020 年 7 月 9 日

笔者在上一篇文章《深入理解JDK7 HashMap》中详细解析了HashMap在JDK7中的实现原理,主要是围绕其put、get、resize、transfer等方法,本文将继续解析HashMap在JDK8中的具体实现,首先也将从put、get、resize等方法出发,着重解析HashMap在JDK7和JDK8中的具体

https://static001.geekbang.org/infoq/f0/f010797459b781c2b480450f1bf7b702.png?x-oss-process=image/resize,w_416,h_234

一篇文章深入理解 JDK7 HashMap

用户头像
itlemon2020 年 7 月 9 日

在日常开发中,集合作为存储数据的容器,被广泛使用在程序代码中,本文将从JDK集合类代表HashMap出发,着重理解HashMap底层实现。

hashmap_hashmap资料文章-InfoQ写作平台