摘要: 一、概述 在Map的实现中,除了我们最常见的KEY值无序的HashMap之外,还有KEY有序的Map,比较常用的有两类,一类是按KEY值的大小有序的Map,这方面的代表是TreeMap,另外一种就保持了插入顺序的Map,这类的代表是LinkedHashMap. 本文介绍TreeMap. Java提供 阅读全文
posted @ 2016-09-26 23:46 海上劳工 阅读(620) 评论(0) 推荐(1) 编辑
摘要: 一、概述 在前一篇中我们回顾了红黑树的特点及添加的处理,可以得知红黑树首先是一个二叉查找树,在此基础上通过增加节点颜色的约束来使得红黑树近似平衡。当我们添加或者删除节点时,我们需要对树进行调整以使其重新满足红黑树。这涉及到节点颜色的变化及部分节点的旋转。关于节点的旋转,以及添加时的处理我们已经介绍完 阅读全文
posted @ 2016-09-24 20:28 海上劳工 阅读(838) 评论(0) 推荐(1) 编辑
摘要: 一、概述 红黑树是一种经典的存储结构,就其本身来说是一个二叉查找树,只是在这个基础上,树的节点增加了一个属性用于表示颜色(红或黑)。通过限制从根节点到叶子的各个路径的节点着色的限制,来保证不会有哪个路径会比其它的路径长度超过2倍,从而红黑树是接近平衡的。 一直以来没有把红黑树完全理解,总觉得太难,望 阅读全文
posted @ 2016-09-22 23:38 海上劳工 阅读(418) 评论(0) 推荐(1) 编辑
摘要: 一、概述 WeakHashMap是Map的一种,根据其类的命令可以知道,它结合了WeakReference和HashMap的两种特点,从而构造出了一种Key可以自动回收的Map。 前面我们已经介绍了WeakReference的特点及实现原理,以及HashMap的实现原理,所以我们本文重点介绍Weak 阅读全文
posted @ 2016-09-06 00:25 海上劳工 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 一、概述 为了更好的理解WeakHashMap的原理,我们有必要先来了解一下WeakReference的作用及实现原理。Java中有一个专门的包java.lang.ref,里面定义了我们通常所说的几种引用,具体来说如下: Reference: 基础的引用类,是一个抽象类,定义了引用的一些基本方法 S 阅读全文
posted @ 2016-09-03 12:50 海上劳工 阅读(1770) 评论(0) 推荐(2) 编辑
摘要: 一、概述 IdentityHashMap也是一类特殊的Map,根据其名字,Identity,即同一性,其表现出的具体特点便是,在判断Map中的两个key是否相等时,只通过==来判断,而不通过equals,也就是说,如果两个key相同,那么这两个key必须是同一个对象。 除此之外,虽然这也是HashM 阅读全文
posted @ 2016-09-01 09:09 海上劳工 阅读(1645) 评论(0) 推荐(0) 编辑
摘要: 一、概述 EnumMap是一类特殊的Map, 其特殊之处在于KEY需要是枚举类型,由于枚举类型的特点是值的个数是固定的,所以,对于EnumMap来说,其所能存储的个数也就是固定的了。这种类型的Map相对来说是比较简单的。 二、主要实现介绍 1. 初始化 由于EnumMap的enum特点,决定了其容器 阅读全文
posted @ 2016-08-31 22:56 海上劳工 阅读(358) 评论(1) 推荐(0) 编辑
摘要: 一、前言 看了下上一篇博客已经是半个月前,将近20天前了,很惭愧没有坚持下来,这期间主要是受奥运会和王宝强事件的影响,另外加上HashMap中关于rehash的实现比较不好理解,所以就一拖再拖。如果能坚持,也许容器这一部分已经写完了。 不管怎么样,奥运总算是结束了,到年底来说,也没有太多可以关注的内 阅读全文
posted @ 2016-08-24 23:52 海上劳工 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 一、前言 前面我们介绍了Collection接口的定义及一系列实现,并重点介绍了List体系下的一些实现,对于Collection来说,其实还有Set系列同样很重要,但由于Set是依赖于Map实现的,所以我们在这里先介绍Map. Collection的特点是存储一类元素的集合,而Map则描述了一组映 阅读全文
posted @ 2016-08-05 00:17 海上劳工 阅读(1493) 评论(0) 推荐(1) 编辑
摘要: 一、前言 上一篇我们介绍了List的重要实现之一ArrayList, 在大多数情况下,我们写代码时会直接使用到ArrayList,因为其在随机访问的优势是其它List无法比拟的。除了ArrayList之外, JDK还提供了一种List实现,即LinkedList, 这个是基于链表来实现的,虽然我们平 阅读全文
posted @ 2016-08-04 08:01 海上劳工 阅读(229) 评论(0) 推荐(0) 编辑