首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
集合
订阅
爱学习
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
深入理解hashmap(三)哈希表和二叉搜索树的恩怨情仇
前面两篇文章介绍了hashmap的源码和理论,今天把剩余的部分红黑树讲一下。理解好红黑树,对我们后续对hashmap或者其他数据结构的理解都是很有好处的。比方说为什么后面jdk要把hashmap中的单链表更新成红黑树? 父节点和子节点,这个我就不多说了。应该都知道。 如果某几个…
深入理解hashmap(二)理论篇
代码分析,没有从理论上分析hashmap,今天把hashmap的理论部分补充一下(之后应该还有两篇补充 一篇讲红黑树一篇讲多线程)。 简单来说 散列函数主要就是:将一个二进制串 通过一定的算法计算以后 得到一个新的二进制串。这个计算的方法就是散列函数。 1.通过哈希值不能得到原…
图解HashMap(一)
HashMap是日常开发中经常会用到的一种数据结构,在介绍HashMap的时候会涉及到很多术语,比如时间复杂度O、散列(也叫哈希)、散列算法等,这些在大学课程里都有教过,但是由于某种不可抗力又还给老师了,在深入学习HashMap之前先了解HashMap设计的思路以及以及一些重要…
图解HashMap(二)
上篇分析了HashMap的设计思想以及Java7和Java8源码上的实现,当然还有一些"坑"还没填完,比如大家都知道HashMap是线程不安全的数据结构,多线程情况下HashMap会引起死循环引用,它是怎么产生的?Java8引入了红黑树,那是怎么提高效率的?本篇先填第一个坑,还…
Java容器类源码-LinkedList的最全的源码分析
LinkedList作为Java容器类中其中一种List,扮演着非常重要的一个角色,它相似于ArrayList的用法,但是底层实现却大相径庭,所以在面试中LinkedList也是考官比较喜欢问的问题,既然这样,那么我们就一起学习LinkedList的源码吧!
Java 容器类源码 - ArrayList 的最全的源码分析
对 ArrayList 的源码分析,非常详细,对需要了解 ArrayList 源码的可以朋友可以看看。
语言小知识-Java HashMap类 深度解析
HashMap 也是比较常用的 Java 集合框架类,该类涉及到的知识比较多,包括数组、链表、红黑树等等,还有一些高效巧妙的计算,并且这个类经过几个版本的改进,不同版本之间是有些差异的,这里都是基于 JDK8 源码。照常的源码翻译,看看你能否回答下面的几个问题?(一些地方真的很…
语言小知识-Java ArrayList类 深度解析
花了一天时间,翻译了一遍 java.util.ArrayList 类的源码(1700 多行,还是很有收获的),包括注释和代码解读,并提了一些问题,也写了下自己的理解 点我查看 ArrayList 源码翻译。 如果把 ArrayList 看作一个杯子的话,capacity 就是杯…
语言小知识-Java LinkedList类 深度解析
上篇文章《ArrayList类 深度解析》中,我对 ArrayList 的源码做了翻译,这次再来翻译一下 LinkedList 类的,阅读完源码后提出下面的问题,来思考一下吧。 LinkedList 我将其翻译为“链表”,其实也并不准确,LinkedList 实现了 List …
深入理解HashMap(一)
hashmap我们都用过很多次了,主要目的就是为了加快我们的查找速度。我们学过数据结构的都知道,数组的查询和修改速度很快,但是增加一个元素或者删除一个元素就很慢,但是链表就反过来,链表是增加和删除一个元素很快,查询和修改就很慢。 通常来说,我们为了提高查询的速度,那么在插入元素…