
数据结构
盛难晨
长路漫漫,bug作伴
展开
-
Hashmap源码分析(jdk1.8)
1.初始化构造函数HashMap<Integer,String> hashMap = new HashMap<>();HashMap<Integer,String> hashMap = new HashMap<>(10);构造函数://将负载因子设为0.75,然后初始化默认最大容量是16,负载因子是0.75,//故默认容量是12,然后超过...原创 2020-04-22 20:15:10 · 201 阅读 · 0 评论 -
Hashmap存储数据过程分析(jdk1.8不涉及源码)
1.所用到的数据结构jdk1.8开始hashmap所使用的是数组+链表+红黑树组成,在jdk1.7的时候还没有用到红黑树。2.扩容首先初始化一个hashmap这时候就会对数组进行扩容,默认容量为16。3.计算出索引值如果数组为空及table【索引值为空】则直接插入,如果不为空,接下来用equals判断key是否相等。如果相等则覆盖掉原来的值,如果不相等则判断是不是树节点,如果是树节点...原创 2020-04-21 12:44:41 · 428 阅读 · 0 评论 -
红黑树大致原理讲解(不涉及源码分析)
1.什么是红黑树R-B Tree,全称是 Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。2.红黑树的特性(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节...原创 2020-04-20 13:50:13 · 229 阅读 · 0 评论