一、HashMap和TreeMap区别 1、HashMap是基于散列表实现的,时间复杂度平均能达到O(1)。 TreeMap基于红黑树(一种自平衡二叉查找树)实现的,时间复杂度平均能达到O(log n)。2、HashMap、TreeMap都继承AbstractMap抽象类;TreeMap实现Sort ...
分类:
其他好文 时间:
2018-04-21 17:32:36
阅读次数:
198
前言 声明,本文用的是jdk1.8 前面章节回顾: "Collection总览" "List集合就这么简单【源码剖析】" "Map集合、散列表、红黑树介绍" "HashMap就是这么简单【源码剖析】" "LinkedHashMap就这么简单【源码剖析】" "TreeMap就这么简单【源码剖析】" 本 ...
分类:
其他好文 时间:
2018-04-14 14:00:07
阅读次数:
198
原创博文,转载请注明出处!github地址# 题目 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4# 思路1.基于Partition的思路 时间复杂度为O(n)2.基于红黑树的思路 首先创建一个大小为k的容器,用来存储最小的k个... ...
分类:
编程语言 时间:
2018-04-13 22:34:42
阅读次数:
255
1. 红黑树属性:根到叶子的路径中,最长路径不大于最短路径的两倍。 2. 红黑树是一个二叉搜索树,并且有 a. 每个节点除了有左、右、父节点的属性外,还有颜色属性,红色或者黑色。 b. ( 根属性 ) 红黑树的根只能是黑色 c. ( 红色属性 ) 红色节点的子节点只能是黑色 d. ( 黑色属性 ) ...
分类:
其他好文 时间:
2018-04-08 22:36:03
阅读次数:
187
作者:CarpenterLee(转载已获得作者许可,如需转载请与原作者联系) 文中所有图片点击之后均可查看大图! 史上最清晰的红黑树讲解(上) 本文github地址 本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及 ...
分类:
编程语言 时间:
2018-04-08 22:25:10
阅读次数:
212
List&Map&Set的操作和遍历 Java的三大集合即:Set、List、Map。 Set:代表无序、不可重复的集合,常用的有HashSet(哈希表实现)、TreeSet(红黑树实现); List:代表有序、可以重复的集合,比较常用的有ArrayList(数组实现)、LinkedList(链表实 ...
分类:
其他好文 时间:
2018-04-07 18:59:20
阅读次数:
184
https://blog.csdn.net/eson_15/article/details/51144079 插入操作: 问题: 1. 插入节点的父节点和其叔叔节点(祖父节点的另一个子节点)均为红色的 2.插入节点的父节点是红色,叔叔节点是黑色,且插入节点是其父节点的右子节点 3.插入节点的父节点是 ...
分类:
其他好文 时间:
2018-04-04 23:14:02
阅读次数:
141
1.HashMap的实现在JDK1.6中,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低,时间复杂度为O(n)。并且出现Hash碰撞时新加入的节点会从头结点加入,最早放入链表会存储在链表的最末端。JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长
分类:
编程语言 时间:
2018-04-03 17:20:14
阅读次数:
190