java源码 1.8_根据jdk1.8源码整理而得,java集合体系(继承、实现关系)图解,超清晰,一看就懂,方便记忆...

一、前言

1. 该关系图是本人根据JDK1.8 源码整理所得,只整理了常用的、常见的集合,并非全部。

2. 整理逻辑:

Collection接口下有两个子接口:List 和 Set 接口。

Map是独立的一个接口。

有关各类集合的特点,图中只是给出了总结,并未从底层数据结构去分析,后面有时间我会再写一篇常用集合底层数据结构分析的博文。

3.对关系图的解释说明:

①从左往右各个接口/实现类之间的关系:左边的节点被右边的节点所实现/继承;

②虚线:虚线起点的类实现了虚线箭头指向的接口。

③集合的三大接口(List、Set、Map),分别用不同颜色的图标①②③来标记;

④集合的三大接口(List、Set、Map)的常用实现类,分别用与该接口图标相同颜色的星星来标记;

⑤打钩图标和表情图标,是我认为值得注意的接口/实现类;

二、集合的继承体系:

0e58344e93b37c5229d60dd29aeaa4d7.png

二、Collection接口的继承关系:

e127d641377ddf8312001d9f2be6d61e.png

三、Map接口的继承关系:

8d89dab0328e69ed79a2982fafd07385.png

【集合框架】JDK1.8源码分析之HashMap(一)

一.前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也 ...

【集合框架】JDK1.8源码分析HashSet && LinkedHashSet(八)

一.前言 分析完了List的两个主要类之后,我们来分析Set接口下的类,HashSet和LinkedHashSet,其实,在分析完HashMap与LinkedHashMap之后,再来分析HashSet ...

【JUC】JDK1.8源码分析之ArrayBlockingQueue(三)

一.前言 在完成Map下的并发集合后,现在来分析ArrayBlockingQueue,ArrayBlockingQueue可以用作一个阻塞型队列,支持多任务并发操作,有了之前看源码的积累,再看Arra ...

【JUC】JDK1.8源码分析之SynchronousQueue(九)

一.前言 本篇是在分析Executors源码时,发现JUC集合框架中的一个重要类没有分析,SynchronousQueue,该类在线程池中的作用是非常明显的,所以很有必要单独拿出来分析一番,这对于之后 ...

JDK1.8源码阅读系列之三:Vector

本篇随笔主要描述的是我阅读 Vector 源码期间的对于 Vector 的一些实现上的个人理解,用于个人备忘,有不对的地方,请指出- 先来看一下 Vector 的继承图: 可以看出,Vector 的直 ...

【集合框架】JDK1.8源码分析之HashMap(一) 转载

[集合框架]JDK1.8源码分析之HashMap(一)   一.前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化 ...

【集合框架】JDK1.8源码分析之ArrayList详解(一)

[集合框架]JDK1.8源码分析之ArrayList详解(一) 一. 从ArrayList字表面推测 ArrayList类的命名是由Array和List单词组合而成,Array的中文意思是数组,Lis ...

集合之TreeSet(含JDK1.8源码分析)

一.前言 前面分析了Set接口下的hashSet和linkedHashSet,下面接着来看treeSet,treeSet的底层实现是基于treeMap的. 四个关注点在treeSet上的答案 二.tr ...

集合之LinkedHashSet(含JDK1.8源码分析)

一.前言 上篇已经分析了Set接口下HashSet,我们发现其操作都是基于hashMap的,接下来看LinkedHashSet,其底层实现都是基于linkedHashMap的. 二.linkedHas ...

随机推荐

CentOS 7.0,启用iptables防火墙

CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fir ...

Codeforces Round #383 (Div. 1)

A: 题目大意:给出一个有向图(n<=100),每个点的出度都为1,求最小的t,使得任意两点x,y,如果x走t步后能到y,那么y走t步后到x. 题解: 首先每个点应该都在一个环上,否则无解. 对 ...

提权GrantPrivilege

大概一个多月前学习了提权的知识,当时一直不知道提权到底具体是为了干什么.只是模糊的知道提高权限,获得别的进程的一些东西.后来慢慢的学习的多了,知道了一个叫做ReadProcessMemory的函数,第 ...

C&num; 获取本机指定类型指定网卡的Ip地址

1.简单方式 ,适用于单网卡 string hostName = Dns.GetHostName(); IPAddress[] addresses = Dns.GetHostAddresses(hos ...

hdu5514Frogs(2015ACM-ICPC沈阳赛区F题)

这题很容易转化到一个容斥计数问题.而用指数复杂度的枚举计数法显然会挂,只能考虑别的方法. 首先将a[i]用gcd(a[i], m)替换,排序去重后得到一组m的约数,而m不超过1e9,因此m的所有约数最 ...

ActiveMQ&lpar;5&period;10&period;0&rpar; - JNDI Support

1. Place the jndi.properties file on the classpath. java.naming.factory.initial = org.apache.activem ...

【设计模式 - 9】之装饰者模式(Decorator)

1      模式简介 装饰者模式允许向一个现有的对象添加新的功能,同时又不改变其结构. 装饰者模式的思路是用"调料"对象将原始对象进行层层包裹,同时其属性.动作层层传递,达到最终 ...

css系列教程--color direction line-height letter-spacing

css标签:colorcolor:用法color:指定文本的颜色color:red/#fff/unicode; direction:用法 direction:定义文本的方向.dirction:ltr/ ...

Canvas translate- 平移

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值