随笔分类 -  util

源码分析
摘要:1. LinkedHashMap.Entry LinkedHashMap继承自HashMap,在其内部维护了一个双向链表 2. LinkedHashMap 1' get + afterNodeAccess + accessOrder(true):将被访问的节点移至双向链表尾部 2' newNode、 阅读全文
posted @ 2017-12-25 14:01 Uncle_Bjorney 阅读(172) 评论(0) 推荐(0)
摘要:1. HashMap.Entry(红黑树节点) 2. 构建TreeMap 3. get 在查找过程中,采用比较器或自然顺序比较节点大小: 1‘ 指定比较器时,优先使用比较器比较节点大小 2' 未指定比较器时,待查找键类型必须实现Comparable接口 4. ceilingEntry和floorEn 阅读全文
posted @ 2017-12-19 19:08 Uncle_Bjorney 阅读(617) 评论(0) 推荐(0)
摘要:1. 扩容 ArrayList扩容包括ensureCapacity(对外开放)和ensureCapacityInternal(内部隐式调用)两个接口: 1' 两者都调用ensureExplicitCapacity接口进行扩容 2' ensureExplicitCapacity在当前容量 < 指定的最 阅读全文
posted @ 2017-12-19 10:42 Uncle_Bjorney 阅读(198) 评论(0) 推荐(0)
摘要:1. HashMap 1)get 1‘ 根据key找到映射的bin 2’ 若bin的首个节点是否为待查找节点,则直接返回 3' 若bin为红黑树则在红黑树中查找,若bin为链表则遍历链表 2)put 1‘ 根据key找到映射的bin 2’ 若bin是否为空,则直接添加节点 3' 若bin为红黑树则在 阅读全文
posted @ 2017-12-14 14:34 Uncle_Bjorney 阅读(214) 评论(0) 推荐(0)
摘要:和AVL树一样,红黑树也是一种自平衡二叉排序树,其定义如下: (1)节点有且只有两种颜色,红色和黑色。 (2)根节点和叶子节点必须是黑色,其中,叶子节点是虚拟存在的空节点(NULL)。 (3)红色节点的两个子节点必须是黑色。 (4)任意节点到叶子节点的路径上,必须包含相同数目的黑色节点。 从红黑树的 阅读全文
posted @ 2017-12-03 00:28 Uncle_Bjorney 阅读(2370) 评论(0) 推荐(0)