zoukankan      html  css  js  c++  java
  • 好看的java集合类图

    http://blog.csdn.net/iamzp2008/article/details/38151971?utm_source=tuicool&utm_medium=referral

    现在关于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

  • 相关阅读:
    JS4
    JS3
    JS2
    JS1
    Dos命令
    面向对象的复习
    9.14Css
    9.13列表的用法
    9.12Css
    9.11Css
  • 原文地址:https://www.cnblogs.com/shoubianxingchen/p/6632757.html
Copyright © 2011-2022 走看看