集合源码
文章平均质量分 71
集合
L._l
这个作者很懒,什么都没留下…
展开
-
HashMap-红黑树
先简单了解下红黑树红黑树本质上是一种二叉查找树,但它在二叉查找树的基础上额外添加了一个标记(颜色),同时具有一定的规则。这些规则使红黑树保证了一种平衡,插入、删除、查找的最坏时间复杂度都为 O(logn)。红黑树的特性:每个节点要么是红色,要么是黑色; 根节点永远是黑色的; 所有的叶节点都是是黑色的(注意这里说叶子节点其实是上图中的 NIL 节点); 每个红色节点的两个子节点一定都是黑色; 从任一节点到其子树中每个叶子节点的路径都包含相同数量的黑色节点;左旋右旋:红黑树的左右旋是比原创 2021-10-15 14:18:26 · 921 阅读 · 0 评论 -
HashMap源码简单介绍
目录Hash实现原理源码分析构造方法HashMao -put根据key获取元素HashMap是基于哈希表的map接口的非同步实现,此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。key无序 唯一 value无序不唯一HashMap底层结构: 数组+链表(1.7) 数组+链表+红黑树(1.8)Hash实现原理Node,是定义在HashMap中的一个内部类,实现了Map.EntryNode类的基本原创 2021-10-15 13:41:44 · 107 阅读 · 0 评论 -
集合Set接口
Setset接口是继承自Collection的子接口,特点是元素不重复,存储无序。HashSetHashSet 通过元素的两个方法,hashCode和equals 方法来保证元素的唯一性, 如果元素的HashCode值相同,才会判断equals是否为true如果元素的hashCode值不同,不会调用equals方法对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本原创 2021-10-14 16:03:20 · 316 阅读 · 0 评论 -
ArrayList 和LinkedList
1.7 的 ArrayList 默认构造 自带10 创建长度10的数组1.8源码private static final int DEFAULT_CAPACITY = 10;//初始容量为10transient Object[] elementData; // Object数组 private int size; //size 数组中有效长度private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8 //MAX_AR原创 2021-09-07 20:51:27 · 217 阅读 · 0 评论