Java编程拾遗『排序二叉树』
在HashMap那篇文章讲过,在Java8中,HashMap是通过数组 + 链表 + 红黑树组织的,当链表中元素个数大于8时,会将链表转化成红黑树。而且Java API中TreeMap也是通过红黑树实现的,所以讲解红黑树,对于我们更好的了解...
在HashMap那篇文章讲过,在Java8中,HashMap是通过数组 + 链表 + 红黑树组织的,当链表中元素个数大于8时,会将链表转化成红黑树。而且Java API中TreeMap也是通过红黑树实现的,所以讲解红黑树,对于我们更好的了解...
在介绍Java中的HashSet之前,我们首先来看一下数学上集合的特性: 无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。集合上可以定义序关系,定义了序关系后,元素之间就可以按照序关系排序。但就集合本身的特性而言,元素之间没...
之前用了两篇文章讲解了ArrayList和LinkedList的实现和使用,ArrayList和LinkedList都存在一个问题,查找元素效率比较低,都需要一一对比,时间复杂度是O(N)。还是回到那句话,每种数据结构都不是凭空出现的,肯定...
上篇文章讲了List的链表实现——LinkedList,同时LinkedList也实现了Dequeue接口,可以通过LinkedList实现栈和队列的操作。刚好昨天看到一篇关于线程池中BlockingQueue相关的不错的文章,这里分享一下...
上篇文章讲了List的数组实现——ArrayList,在最后讲了ArrayList的一些特性,比如支持随机访问,插入和删除效率偏低。本篇文章来看一下List基于链表的实现LinkedList的一些细节,每一种实现都是有它特定的使用场景的,而...
上篇文章简单介绍了一下Java集合框架中两个最常见的接口,表示集合的Collection和表示K-V映射的Map。本篇文章重点介绍一下Collection的一个重要实现类,动态数组容器类ArrayList。由于在上一篇文章已经介绍了Coll...
在大学时,我们肯定都学过一门叫数据结构的课,里面详细的介绍了链表、栈、队列、散列、树、图等数据结构的概念及其实现。接下来的几篇文章将详细介绍一下Java API对常见数据结构的实现原理及应用,也就是Java API中的集合类(集合框架)。首...
在大多数场景下,我们在代码编写时,我们一般都知道所要使用的数据的具体类型,会根据类型创建对象,并使用对象的一些属性及方法。但是有些情况下,我们在编写代码时,无法确定要创建对象的具体类型,比如我要编写一个工厂类,通过运行时的输入信息,决定构建...
由于双十一的缘故,忙着各种压测、演练以及值班,最近一直没什么时间写文章。还好,基本上双十一算是很平稳的度过了。作为电商平台,双十一带来的流量冲击,还是给我留下深刻的印象,特别订单、支付链路的环节,流量瞬间可以达到平时峰值的两倍以上。关于双十...
1. 泛型通配符 固定的泛型类型系统使用起来不是一直那么方便,比如Pair<Integer>并不是Pair<Number>的子类型,所以不能将Pair<Integer>对象赋值给pair<Numbe...