文章 2022-06-19 来自:开发者社区

Java集合源码剖析——基于JDK1.8中HashMap的实现原理(下)

文章目录:3.5 hash方法3.6 resize方法3.7 size方法3.8 isEmpty方法3.9 clear方法3.10 containsKey方法3.11 containsValue方法3.12 replace方法3.13 关于遍历map集合的三个方法4.传统HashMap的缺点——引入红黑树3.5 hash方法在get 方法和put方法中都需要先计算key映射到哪个桶上,然后才进行....

Java集合源码剖析——基于JDK1.8中HashMap的实现原理(下)
文章 2022-06-19 来自:开发者社区

Java集合源码剖析——基于JDK1.8中HashMap的实现原理(上)

文章目录:1.HashMap源码注释翻译2.HashMap中的属性3.HashMap中的方法3.1 构造方法3.2 get方法3.3 put方法3.4 remove方法1.HashMap源码注释翻译* Hash table based implementation of the <tt>Map</tt> interface.  This* implementat....

Java集合源码剖析——基于JDK1.8中HashMap的实现原理(上)
文章 2022-06-19 来自:开发者社区

Java集合源码剖析——基于JDK1.8中HashSet、LinkedHashSet的实现原理

文章目录:1.开篇2.HashSet中的属性3.HashSet中的方法3.1 构造方法一3.2 构造方法二3.3 构造方法三3.4 构造方法四3.5 构造方法五3.6 迭代器Iterator方法3.7 size方法3.8 isEmpty方法3.9 contains方法3.10 add方法3.11 remove方法3.12 clear方法4.LinkedHashSet中的方法1.开篇前面三篇文章分....

Java集合源码剖析——基于JDK1.8中HashSet、LinkedHashSet的实现原理
文章 2022-06-19 来自:开发者社区

Java集合源码剖析——基于JDK1.8中LinkedList的实现原理(下)

3.7 unlinkFirst方法删除操作与添加操作大同小异,需要把当前节点的前驱节点的后继修改为当前节点的后继,以及当前节点的后继结点的前驱修改为当前节点的前驱。unlinkFirst方法是在表头进行元素的删除,首先做的是将要删除元素的item值保存到一个临时变量element中,最终返回。同时将要删除元素的后继指针保存到next临时指针中。然后将元素删除(即 f.item=null,f.ne....

Java集合源码剖析——基于JDK1.8中LinkedList的实现原理(下)
文章 2022-06-19 来自:开发者社区

Java集合源码剖析——基于JDK1.8中LinkedList的实现原理(上)

文章目录:1.看看关于LinkedList源码开头的注释2.LinkedList中的属性3.LinkedList中的方法3.1 push、offer方法3.2 添加元素的一系列add方法3.3 linkFirst方法3.4 linkLast方法3.5 linkBefore方法3.6 移除元素的一系列remove方法1.看看关于LinkedList源码开头的注释* Doubly-linked li....

Java集合源码剖析——基于JDK1.8中LinkedList的实现原理(上)
文章 2022-06-19 来自:开发者社区

Java集合源码剖析——基于JDK1.8中Vector的实现原理

文章目录:1.Vector中的属性2.Vector中的方法2.1 构造方法2.2 grow方法2.3 其他方法1.Vector中的属性Vector中的属性其实跟ArrayList时差不多的,就比ArrayList多了一个 protected int capacityIncrement;  这个属性是在扩容的时候用到的,它表示每次扩容只扩 capacityIncrement 个空间就足够....

Java集合源码剖析——基于JDK1.8中Vector的实现原理
文章 2022-06-19 来自:开发者社区

Java集合源码剖析——基于JDK1.8中ArrayList的实现原理

文章目录:1.看看关于ArrayList源码开头的注释2.ArrayList中的属性3.ArrayList中的方法3.1 无参构造方法3.2 有参构造方法(参数为int)3.3 get方法3.4 grow方法3.5 add方法3.6 set方法3.7 remove方法3.8 size方法3.9 isEmpty方法3.10 indexOf方法3.11 lastIndexOf方法3.12 clear....

Java集合源码剖析——基于JDK1.8中ArrayList的实现原理
文章 2022-02-17 来自:开发者社区

Java 集合源码解析 - ConcurrentHashMap(JDK7)(下)

5 ConcurrentHashMap的操作主要研究ConcurrentHashMap的3种操作——get操作、put操作和size操作.5.1 get操作Segment的get操作实现非常简单和高效.先经过一次再散列然后使用该散列值通过散列运算定位到Segment最后通过散列算法定位到该元素.public V get(Object key) { Segment<K,V> s...

Java 集合源码解析 - ConcurrentHashMap(JDK7)(下)
文章 2022-02-17 来自:开发者社区

Java 集合源码解析 - ConcurrentHashMap(JDK7)(上)

ConcurrentHashMap是线程安全且高效的HashMap1 为什么要使用ConcurrentHashMap线程不安全的HashMapHashMap是Java中最常用的一个Map类,性能好、速度快,但不能保证线程安全,它可用null作为key/valueHashMap的线程不安全主要体现在resize时的死循环及使用迭代器时的fast-fail在多线程环境下,使用HashMap进行put....

Java 集合源码解析 - ConcurrentHashMap(JDK7)(上)
文章 2022-02-17 来自:开发者社区

集合详解(四)----HashSet和HashMap源码剖析(JDK1.7)

HashSet HashMap HashSet     当初始化一个HashSet的时候,HashSet的底层实现其实是HashMap: private transient HashMap<E,Object> map; public HashSet() { map = new HashMap<>(); }   &n...

集合详解(四)----HashSet和HashMap源码剖析(JDK1.7)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐