摘要:
前言: 前一段时间开始学习了一些基本的数据结构和算法,算是弥补了这方面的知识短板,但是仅仅是对一些算法的了解,目前工作当中也并没有应用到这些,因此希望通过结合实际例子来学习,巩固之前学到的内容,思前想后觉得jdk源码其实非常适合学习,首先jdk的一些类在工作中使用频率非常高,并且他的底层实现结合了不 阅读全文
posted @ 2017-06-01 17:31
thinker1017
阅读(215)
评论(0)
推荐(0)
摘要:
前言:WeakHashMap这个类我看了好久,一直不知道怎么写,有两点原因。第一:我怕把他写简单了,光从WeakHashMap的功能实现是描述,他和HashMap等非常的相似,无非也是用来hash表+单向链表的结构作为底层数据存储,再写一遍没太大意思。 第二:WeakHashMap的特点是以一种弱引 阅读全文
posted @ 2017-06-01 17:29
thinker1017
阅读(171)
评论(0)
推荐(0)
摘要:
#####前言: Set接口有三个实现类,HashSet,LinkedHashSet和TreeSet。HashSet前文已经介绍过了,他内部通过维护一个HashMap存储数据,LinkedHashSet继承了HashSet,他与HashSet的唯一区别就是他维护的是一个LinkedHashMap,实 阅读全文
posted @ 2017-06-01 17:28
thinker1017
阅读(183)
评论(0)
推荐(0)
摘要:
#####前言: TreeMap和HashMap一样实现的是Map接口,但两者的实现方式天差地别。HashMap的底层是hash表+单向链表的形式存储数据,TreeMap底层是通过红黑树存储数据。HashMap因为是基于散列表的实现,所以时间开销为O(1),TreeMap的时间开销是O(lgn)。T 阅读全文
posted @ 2017-06-01 17:27
thinker1017
阅读(178)
评论(0)
推荐(0)
摘要:
和Collection一样,Map也是集合容器的一个顶层接口。Map是通过key-value方式存储数据,key值都是唯一的,但key是否能为空,则要看他的不同子类的实现。我们可以把Map看成一个小型的数字字典,通过key值的方式存储数据性能非常快,比如他的子类Hashmap,底层就是通过散列表来实 阅读全文
posted @ 2017-06-01 17:25
thinker1017
阅读(242)
评论(0)
推荐(0)
摘要:
#####前言: 本文讲述的LinkedHashMap是HashMap的子类,他不仅实现了HashMap的所有功能,更是维护了元素的存储顺序。LinkedHashMap维护元素顺序的方式有两种,一种是维护他的存入顺序,另一种则是维护元素的读取顺序。基于这种功能,LinkedHashMap可以在用于L 阅读全文
posted @ 2017-06-01 17:24
thinker1017
阅读(223)
评论(0)
推荐(0)
摘要:
Iterator模式用于遍历所有集合类的元素,他的设计是为了把所有的集合遍历逻辑抽出来,从而避免向客户暴露集合的内部结构。 boolean hasNext():这个方法是在遍历的时候,判断是否还有更多的元素E next(): 返回下一个元素default void remove():这里涉及到了jd 阅读全文
posted @ 2017-06-01 17:23
thinker1017
阅读(139)
评论(0)
推荐(0)
摘要:
#####前言: 前文中已对HashMap实现原理做了详细介绍,HashTable与HashMap的原理相同,实现方式也几乎一致。除了以下几点不同:1.HashMap非线程安全,HashTable线程安全。HashMap与HashTable的实现方法几乎一致,区别是HashTable对所有的方法进行 阅读全文
posted @ 2017-06-01 17:22
thinker1017
阅读(166)
评论(0)
推荐(0)
摘要:
#####前言: 先说说HashSet的继承关系,HashSet继承了AbstractSet抽象类并实现了Set接口,AbstractSet的子类还包括TreeSet,里面实现了两个类公共的一部分方法,后面也会略有介绍。那么HashSet到底一个怎么样的存在呢?HashSet顾名思义就是通过Hash 阅读全文
posted @ 2017-06-01 17:20
thinker1017
阅读(167)
评论(0)
推荐(0)
摘要:
#####前言: 从今天开始我将介绍Map系列接口,我认为Map是集合类中概念最多,实现最复杂的一类接口。在讲解过程中会涉及到不少数据结构的知识,这部分知识点需要读者额外花一定时间系统学习。 HashMap是Map的一个实现类,这个类很重要,是很多集合类的实现基础,底层用的就是他,比如前文中讲到的H 阅读全文
posted @ 2017-06-01 16:53
thinker1017
阅读(231)
评论(0)
推荐(0)
摘要:
#LinkedList #####前言: 本文将介绍List家族中的另一个重要的实现类,他的实现有别与ArrayList和Vector,虽说List的所有类都是线性存储结构,但前者是通过数组存储的顺序结构,而本次要讲的LinkedList是通过链表的形式存放数据。当然,LinkedList也是非线程 阅读全文
posted @ 2017-06-01 16:51
thinker1017
阅读(222)
评论(0)
推荐(0)
摘要:
Collection Collection作为一个集合类的顶层接口,他没有直接的子类实现,而是通过实现它的子接口来实现集合容器。Collection的特点是作为一个容器,他可以轻松的帮用户实现数据存储,动态扩容,还有方便的元素遍历和快速的增删改查等操作,这些特点都在接口定义的方法中一一体现出来,相比 阅读全文
posted @ 2017-06-01 16:40
thinker1017
阅读(315)
评论(0)
推荐(0)
摘要:
#ArrayList & Vector #####前言: 本来按照计划,ArrayList和Vector是分开讲的,但是当我阅读了ArrayList和Vector的源码以后,我就改变了注意,把两个类合起来讲或许更加适合。为什么呢?我有几个理由。 3.他俩都实现了Iterator和LinkIterat 阅读全文
posted @ 2017-06-01 16:36
thinker1017
阅读(190)
评论(0)
推荐(0)
浙公网安备 33010602011771号