当前位置:首页 > 后端开发 > 一张图让你看清Java集合类(Java集合类的总结)

一张图让你看清Java集合类(Java集合类的总结)

7个月前 (05-26)28

现在关于Java集合类的文章很多,但是我最近看到一个很有意思图片,基本上把Java集合的总体框架都给展现出来了,很直观。

一张图让你看清Java集合类(Java集合类的总结) _ Java侠

如果发现图片看不清楚,点此处看大图


在这里,集合类分为了Map和Collection两个大的类别。

处于图片左上角的那一块灰色里面的四个类(Dictionary、HashTable、Vector、Stack)都是线程安全的,但是它们都是JDK的老的遗留类,现在基本都不怎么使用了,都有了对应的取代类。其中Map是用来代替图片中左上角的那个Dictionary抽象类(Map的官方文档里面有说明)。官方推荐使用Map接口来代替它。同样对于HashTable,官方推荐ConcurrentHashMap来代替。接着下面的Vector是List下面的一个实现类。


接着最上面的粉红色部分是集合类所有接口关系图。其中Map的结构比较简单,而Collection的结构就相对复杂一些。Collection有三个继承接口:List、Queue和Set。


接下来的绿色部分则是集合类的主要实现类了。这也是我们最经常使用的集合类了。


按照实现接口分类:

实现Map接口的有:EnumMap、IdentityHashMap、HashMap、LinkedHashMap、WeakHashMap、TreeMap

实现List接口的有:ArrayList、LinkedList

实现Set接口的有:HashSet、LinkedHashSet、TreeSet

实现Queue接口的有:PriorityQueue、LinkedList、ArrayQueue


根据底层实现的数据结构分类:

底层以数组的形式实现:EnumMap、ArrayList、ArrayQueue
底层以链表的形式实现:LinkedHashSet、LinkedList、LinkedHashMap
底层以hash table的形式实现:HashMap、HashSet、LinkedHashMap、LinkedHashSet、WeakHashMap、IdentityHashMap
底层以红黑树的形式实现:TreeMap、TreeSet
底层以二叉堆的形式实现:PriorityQueue


最下方的一个整块都是java.util.concurrent包里面的类,按照包名我们就可以知道这个包里面的类都是用来处理Java编程中各种并发场景的。


下篇预告:对中间的常用集合类(绿色部分的常用实现类)进行一个更加详细的解读。

工具推荐:http://grepcode.com/。阅读代码神器。这个源码阅读站点不但包含了绝大部分的Java类库源码,而且对源码中间的注释、跳转等做了很好的优化,有了它,保证你的源码阅读效率大大提升。

原图出处:http://pierrchen.blogspot.com/2014/03/java-collections-framework-cheat-sheet.html





作者:大鹏爱蔬菜
来源链接:https://blog.csdn.net/iamzp2008/article/details/38151971

标签: Java集合Java

“一张图让你看清Java集合类(Java集合类的总结)” 的相关文章

Java虚拟机性能管理神器

Java虚拟机性能管理神器

Java虚拟机性能管理神器 - VisualVM(4) - JDK版本与VisualVM版本对应关系【转】 标签: javajvm监...

Java中多个集合的交集,并集和差集

一、交集   java中交集使用 A.retainAll(B) ,交集的结果在集合A中。 1 import org.junit.Test; 2 3 impo...

Java8避免非空判断

如何预防 Java 中著名的 NullPointerException 异常?这是每个 Java 初学者迟早会问到的关键问题之一。而且中级和高级程序员也在时时刻刻规避这个错误...

【转载】Java中的多线程超详细的总结

【转载】Java中的多线程超详细的总结

引 如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有...

java中多线程的实现

1.JAVA多线程实现方式 JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结...

java安装及配置环境变量

java安装及配置环境变量

JDK(TM)7 64位是针对Java开发员推出的软件开发工具包,是学习Java语言的得力助手,无论是搭建jsp web开发环境,还是做android开发,都离不开JDK。主要用于移动设...

Java JDK1.5、1.6、1.7、1.8、9-11、12、13新特性整理

文章目录 一、Java JDK1.5的新特性...

Java 集合和泛型

  一、集合(Collections)   Java使用集合来组织和管理对象。   1、Java的集合类   集合类主要负责保存、盛装和管理对象,因此集合类也被称为容器...

干货:排名前16的Java工具类

文章转载自: https://yq.aliyun.com/articles/619257 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通...

java判断字符为空

java怎么判断字符是否为空 发布时间:2020-06-29 18:07:03 来源:亿速云 阅读:179 作者:Leah...