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

来源:互联网 发布:过道建筑面积算法 编辑:程序博客网 时间:2024/05/16 14:05

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

  

5416b7d500012eea05000306.jpg


http://www.imooc.com/wenda/detail/31403  大图


  在这里,集合类分为了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类库源码,而且对源码中间的注释、跳转等做了很好的优化,有了它,保证你的源码阅读效率大大提升。

  

0 0
原创粉丝点击