最新 最热

TreeMap put 操作分析

1 public V put(K key, V value) { 2 //t 表示当前节点,记住这个很重要!先把TreeMap 的根节点root 的引用赋值给当前节点 3 TreeMap.Entry<K,V> t = root; 4 //如果当前节点为null ,即......

2020-02-18
2

collection之map

1.HashMappackage learn.collection;import org.testng.annotations.Test;import org.w3c.dom.ls.LSOutput;import java.util.HashMap;import java.util.Map;import...

2020-01-06
2

红黑树的特性

(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节点是红色的,则它的子节点必须是黑色的。(5)从一个节点到该节点的子孙节点的所有...

2019-11-25
2

TreeMap树映射取出对象的方式

Map接口中的方法,返回值类型是该集合中的各个关系;返回值类型是:Set类型的Map.EntrySet类型;然后在通过Set集合中特有的元素取出方式:将集合中的各个元素迭代取出;例子:...

2019-11-22
2

死磕 java同步系列之ReentrantReadWriteLock源码解析

(4)如何使用ReentrantReadWriteLock实现高效安全的TreeMap?

2019-07-08
2

死磕 java集合之TreeMap源码分析(二)- 内含红黑树分析全过程

插入元素,如果元素在树中存在,则替换value;如果元素不存在,则插入到对应的位置,再平衡树。

2019-07-08
2

死磕 java集合之TreeMap源码分析(三)- 内含红黑树分析全过程

(1)如果删除的位置有两个叶子节点,则从其右子树中取最小的元素放到删除的位置,然后把删除位置移到替代元素的位置,进入下一步。

2019-07-08
2

红黑树详细分析,看了都说好

红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它是由 Rudolf Bayer 于1972年发明,在当时被称为对称二叉 B 树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的红黑...

2019-02-15
2

HashMap 源码解析

首先看一下树节点构造static final class Entry<K,V> implements Map.Entry<K,V> { K key; V value; Entry<K,V> left; Entry<K,V> right; ......

2018-06-01
2

jdk源码分析红黑树——插入篇1.插入root2.父黑3.父红4.父红,叔红5.1父红,叔黑,外侧子孙5.2父红,叔黑,内侧子孙

红黑树是自平衡的排序树,自平衡的优点是减少遍历的节点,所以效率会高。如果是非平衡的二叉树,当顺序或逆序插入的时候,查找动作很可能会遍历n个节点红黑树的规则很容易理解,但是维护这个规则难。一、规则1.每个节点要么是...

2018-02-05
2