最近几天看Java集合框架相关的博文,找到了一些很不错的文章。现整理分享出来。
常见的集合框架图

网上流传最多的图,不多解释。
Java集合框架全图
网上有大牛把Java集合整理在了一张图上。如下:
在这里,集合类分为了Map和Collection两个大的类别:
处于图片左上角的那一块灰色里面的四个类(Dictionary、HashTable、Vector、Stack)都是线程安全的,可是它们都是JDK的老的遗留类。如今基本都不怎么使用了,都有了相应的取代类。
- 当中Map是用来取代图片中左上角的那个Dictionary抽象类。官方推荐使用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类库源代码,并且对源代码中间的凝视、跳转等做了非常好的优化。有了它,保证你的源代码阅读效率大大提升。
Java 集合系列——博文
Java 集合系列01之 总体框架
Java 集合系列02之 Collection架构
Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例
Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
Java 集合系列07之 Stack详细介绍(源码解析)和使用示例
Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
Java 集合系列09之 Map架构
Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例
Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例
Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例
Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
Java 集合系列15之 Set架构
Java 集合系列16之 HashSet详细介绍(源码解析)和使用示例
Java 集合系列17之 TreeSet详细介绍(源码解析)和使用示例
Java 集合系列18之 Iterator和Enumeration比较