Java 8 数据结构
十幂强心
这个作者很懒,什么都没留下…
展开
-
Java 数据结构 -- 11.Java 8 数据结构 Set 数据结构
前言书接上文,上一篇中对链表最终实现类 LinkedList 做了分析,至此 Java 8 所有业界最佳实现的链表最终实现类都以分析完毕,本篇开始将对 Set 数据结构进行分析。还是先来看下数据结构总继承关系图与 Set 部分的继承关系图:其中 LinkedEntrySet 与 LinkedKeySet 是 HashMap 中的子类,由于也是继承自 AbstractSet,所以放在这里一...原创 2019-06-12 16:02:36 · 490 阅读 · 0 评论 -
Java 数据结构 -- 10.Java 8 数据结构 LinkedList
书接上文,上一篇中对链表结构最终实现类 Vector 做了分析,本篇将继续对 LinkedList 做分析。LinkedList 与 ArrayList/Vector 有一点不同,它的继承关系是 AbstractList -》 AbstractSequentialList -〉 LinkedList,并且实现了 Deque 接口,而 ArrayList/Vector 是直接继承自 Abstra...原创 2019-06-11 15:55:18 · 183 阅读 · 0 评论 -
Java 数据结构 -- 13.Java 8 数据结构 TreeSet
前言书接上文,上一篇中对 Set 接口最终实现类 HashSet 与 LinkedHashSet 做了介绍与分析,本篇将对另一种 Set 接口的最终实现类 TreeSet 进行介绍与分析。先来看下 TreeSet 完整的继承结构图可以看到 TreeSet 与 HastSet 不同,不仅继承自 AbstarctSet 类,还实现了 SortSet 与它的子类 NavigableSet 接口,...原创 2019-06-17 13:36:42 · 1034 阅读 · 0 评论 -
Java 数据结构 -- 15.Java 8 数据结构 HashMap
前言书接上文,上一篇中对 Map 接口与 AbstractMap 抽象类进行了介绍与分析,本篇将对 Map 接口的最终实现类 HashMap 做介绍与分析。Map 的继承结构图:这里可以看到,HashMap 直接继承了 AbstractMap 抽象类,实现了 Map 接口,所以接下来可以直接查看 HashMap 的源码。/** * Hash table based implementa...原创 2019-06-21 16:00:48 · 488 阅读 · 0 评论 -
Java 数据结构 -- 18.Java 8 数据结构补充介绍 EnumSet
前言书接上文,上一篇对 TreeMap 进行了介绍与分析,对于 Java 大部分经典数据结构都已介绍完毕,本篇将对 EnumSet 进行介绍与分析。原创 2019-06-25 14:16:55 · 314 阅读 · 0 评论 -
Java 数据结构 -- 14.Java 8 数据结构 Map 数据结构
前言书接上文,上一篇中对 Set 接口的最终实现类 TreeSet 进行了介绍与分析,本篇开始将对 Map 接口进行分析。还是先来看下数据结构总继承关系图与 Map 部分的继承关系图:可以看到 Map 与 Collection 数据结构本身是没有关系的,但是上一个对于 Set 接口的介绍篇章中可以看到,无论是实现了 Collection 特性的 HashSet 还是 TreeSet 其实都...原创 2019-06-18 01:42:54 · 159 阅读 · 0 评论 -
Java 数据结构 -- 19.Java 8 数据结构补充介绍 EnumMap
前言书接上文,上一篇中对 EnumSet 进行了介绍与分析,本篇将对 EnumMap 进行介绍与分析。首先还是来看一下 EnumMap 的继承关系图:原创 2019-06-25 20:50:02 · 203 阅读 · 0 评论 -
Java 数据结构 -- 16.Java 8 数据结构 LinkedHashMap
前言书接上文,上一篇中对 Map 接口的 最终实现类 HashMap 进行了介绍与分析,本篇将对 HashMap 的子类,实现了恒定顺序特性的 LinkedHashMap 进行介绍与分析。这里就不再放图了,直接来看 LinkedHashMap 的源码...原创 2019-06-22 15:57:47 · 342 阅读 · 0 评论 -
Java 数据结构 -- 20.Java 8 数据结构补充介绍 ArrayDeque
前言书接上文,上一篇对 EnumMap 进行了介绍与分析,本篇将对 ArrayDeque 进行介绍与分析。还是先来看一下 ArrayDeque 的继承关系图:可以看到它与其他数据结构不同的地方主要是实现了双端队列(Deque 接口)。由于 ArrayDeque 可以作为一个栈使用,所以在查看 ArrayDeque 之前先来看一下 Stack 的源码。/** * Stack 类代表了一...原创 2019-06-26 18:02:19 · 330 阅读 · 0 评论 -
Java 数据结构 -- 17.Java 8 数据结构 TreeMap
前言书接上文,上一篇对 LinkedHashMap 进行了介绍与分析,本篇将对 TreeMap 进行介绍与分析。首先还是先来看一下 Map 的继承关系图:TreeMap 与其他 Map 最终实现类不同的部分是实现了 NavigableMap 接口,而 NavigableMap 继承于 SortedMap,所以在查看 TreeMap 之前还需要看一下这两个接口。/** * 为了防止与 L...原创 2019-06-27 14:32:20 · 318 阅读 · 0 评论 -
Java 数据结构 -- 09.Java 8 数据结构 Vector
前言书接上文,上一篇对 ArrayList 进行了分析,本篇将继续对 List 数据结构的最终实现类 Vector 进行分析。Vector/**Vector 类实现了一个可增长的 objects 数组。就像数组一样,它包含可以通过整形下标访问的内容。但是,一个 Vector 类型的对象在创建后可以通过添加或者删除元素来根据需要增加或者缩小(长度)。每个 Vector 对象试图通过维护一个...原创 2019-06-11 14:13:26 · 203 阅读 · 0 评论 -
Java 数据结构 -- 12.Java 8 数据结构 HashSet
前言书接上文,上一篇中对于 Set 接口与 AbstractSet 抽象实现类做了介绍与分析,本篇将对 Set 最终实现类 HashSet 与 LinkedHashSet 做介绍与分析。先来看下 HashSet 的源码/** * 这个类实现了 Set 接口,有一个 hash table(事实上是一个 HashMap)支持。它对于套的迭代顺序不做保证,此处 * 特指,它不保证顺序能一直保持...原创 2019-06-16 18:02:03 · 307 阅读 · 1 评论 -
Java 数据结构 -- 01.Java 8 数据结构中纷繁接口的概览
前言经典的 Java 业界最佳实现数据结构主要有 List,Set,Map,通过各自不同的特性与方法来维护数据。以下就以这三种数据结构渐渐展开。List,Set 都是针对一组相同类型的对象的数据结构,以下成为 组数据结构 ,Map 则是另一种 字典数据结构 。本人才疏学浅,如有错误,望各位批评指正,共同进步,感谢。接口类型在 Java 8 数据结构这块的源码中,按我自己的理解,主要有三种类型...原创 2019-06-07 01:52:29 · 221 阅读 · 0 评论 -
Java 数据结构 -- 02.Java 8 数据结构涉及到的版本新特性
书接上文,上一篇对 Java 8 数据结构中设计到的接口类型做了一个大致的分类,本篇就对数据结构中的 行为接口 1 与对应的能力器接口的源码做下浏览与分析。Java 8 新特性在分析行为接口类的源码之前,需要对 Java 8 的新特性有一个简单的了解查看 Java 官网对于函数式接口的说明可知@FunctionalInterface 是一个函数式接口注解类,标注这个注解的接口将被定义为函...原创 2019-06-07 01:52:48 · 151 阅读 · 0 评论 -
Java 数据结构 -- 03.Java 8 数据结构中的行为接口
书接上文,上一篇对 Java 8 的新特性做了简单的介绍,由于这些接口大多是独立于数据结构架构之外,是 Java 8 中新增的,而 Java 8 的数据结构中有多处使用这些接口的新方法,并且 Java 8 提供的重要更新-- 流式处理类 Stream 中大量方法使用了行为接口参数,所以在阅读数据结构的源码之前,先来对这些接口做一下简单的了解。Consumer消费行为接口,以下是 Consume...原创 2019-06-07 01:53:05 · 166 阅读 · 0 评论 -
Java 数据结构 -- 04.Java 8 数据结构流式处理
书接上文,上一篇中对 Java 8 的行为接口做了简单的介绍,本篇将对 Java 8 集合重要操作 流式处理类 Stream 做简单的介绍,有了前面的铺垫,阅读 Stream 的源码就比较清晰了。首先来了解一下 Stream 大致概念。Stream 接口...原创 2019-06-08 16:27:20 · 428 阅读 · 0 评论 -
Java 数据结构 -- 05.Java 8 数据结构能力接口与能力器接口
书接上文,上一篇对 Java 8 流式处理进行了简单的介绍,本篇将对能力接口与能力器接口进行分析。在 Java 8 接口概览 中提到,Java 8 提供能力接口与它对应的能力器接口,有的比较器接口又有自己的比较器工具类,这样做的原因是为了屏蔽继承能力接口的不同数据结构实现类的内部结构差异,用能力器接口提供统一的实现能力的方法接口。接下来就对这些能力接口与能力器接口做下简单的介绍比较能力能力接...原创 2019-06-08 18:49:49 · 203 阅读 · 0 评论 -
Java 数据结构 -- 06.Java 8 数据结构中的结构接口与类概览
前言书接上文,上一篇中对 Java 能力接口与能力器接口进行了介绍,本篇开始正式进入 Java 8 数据结构的分析。Java 8 数据中业界最佳实现的数据结构接口与类大体上可以分为 4 类,List,Set,Map,Queue,先来看一下这四类数据结构整体的继承关系图可以看到还是比较庞杂的,其中还涉及到之前所说到的能力/能力器/流式处理/线程安全等诸多概念,所以本篇只是一个概览,接下去将按...原创 2019-06-09 04:23:37 · 297 阅读 · 0 评论 -
Java 数据结构 -- 07.Java 8 数据结构 List 数据结构
前言书接上文,上一篇中对 Java 8 中数据结构的结构接口与类做了简单的介绍,本篇将就 List 部分进行分析。首先来看下数据结构总继承关系图与 List 部分的继承关系图在《数据结构能力接口与能力器接口》中对 Iterable/Iterator 做了介绍,《数据结构中的结构接口与类概览 》篇中对 Collection 与 AbstractCollection 做了介绍,需要注意 Li...原创 2019-06-10 20:58:30 · 279 阅读 · 0 评论 -
Java 数据结构 -- 08.Java 8 数据结构 ArrayList
前言书接上文,上一篇对 List 最终实现类(ArrayList,Vector 和 LinkedList)以外的 List 部分继承关系中的接口与类做了分析,本篇将对 ArrayList 进行分析。ArrayList/**可以重新规划容量的链表实现类。实现了所有链表的可选操作,并且容许所有原序,包括 null。除了实现了链表接口外,这个类提供了控制数组容量来内部存储链表的方法。(这个类大致与...原创 2019-06-10 21:02:03 · 235 阅读 · 0 评论 -
Java 数据结构 -- 21.Java 8 数据结构补充介绍 Hashtable
前言书接上文,上一篇中介绍并分析了 ArrayDeque,本篇将对线程安全的 Map 接口最终实现类 Hashtable 进行介绍与分析。原创 2019-07-01 13:21:42 · 179 阅读 · 0 评论