Map
蛋焊工
搬砖小学生
展开
-
HashMap JDK1.7
1、什么是HashMap? HashMap继承AbstractMap,实现了Map<K,V>, Cloneable, Serializable接口,是可以存储k-v键值对,允许存储nullkey和nullvalue(null键值对存放在table【0】处),是无序、非线程安全的数组链表结构。HashMap中存在put、get、size等方法。 2、HashMap中put原理 ...原创 2018-10-22 20:17:18 · 140 阅读 · 0 评论 -
JDK1.8 Hashtable源码分析
* Copyright (c) 1994, 2017, Oracle and/or its affiliates. All rights reserved. package java.util; import java.io.*; import java.util.concurrent.ThreadLocalRandom; import java.util.function.BiConsu...原创 2018-12-07 18:03:23 · 219 阅读 · 3 评论 -
JDK1.8 HashMap源码分析
package java.util; import java.io.IOException; import java.io.InvalidObjectException; import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import j...原创 2018-12-10 16:27:23 · 282 阅读 · 0 评论 -
JDK1.8 TreeMap源码分析
TreeMap是通过红黑树实现的,增删改查的操作底层都是对红黑树的相关操作,因此先介绍红黑树的相关性质。 红黑树顾名思义就是节点是红色或者黑色的平衡二叉树,它通过颜色的约束来维持着二叉树的平衡。对于一棵有效的红黑树二叉树而言我们必须增加如下规则: 1、每个节点都只能是红色或者黑色 2、根节点是黑色 3、每个叶节点(null节点,空节点)是黑色的。 4、如果一个...原创 2018-12-17 20:39:44 · 323 阅读 · 0 评论 -
JDK1.8 ConcurrentHashMap源码分析
ConcurrentHashMap重要的属性,无论是初始化哈希表,还是扩容 rehash 的过程,都是需要依赖这个关键属性 private transient volatile int sizeCtl; 负数代表正在进行初始化或扩容操作 -1代表正在初始化 -N 表示有N-1个线程正在进行扩容操作 正数或0代表hash表还没有被初始化,这个数值表示初始化或下一次进行扩容的大小。 首先分析...原创 2019-01-14 18:57:27 · 334 阅读 · 0 评论 -
HashMap源码分析
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { //HashMap继承了AbstractMap实现了Map、克隆、序列化接口 private static final long serialVersio...原创 2018-05-08 15:50:13 · 147 阅读 · 0 评论