zoukankan      html  css  js  c++  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





  • 相关阅读:
    C# 图像处理(图像缩放、屏幕截取、图像合并、保存图像)
    C# string ASCII相互转换
    BitNami Redmine Stack迁移
    win10开始菜单打不开怎么办?
    (.text+0x18): undefined reference to `main'
    CUDA 计算pi (π)
    C++ 对TXT 的串并行读写
    Matlab 与 c++对txt 文档的读写格式
    Git 初级使用 windows & Ubuntu
    Leetcode 题解 Remove Duplicates from Sorted List
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5079533.html
Copyright © 2011-2022 走看看