Java集合篇(1)如何正确打开Java集合框架

Java集合源码解析系列博客

转载请标明出处:
https://blog.****.net/u011035026/article/details/103259019

1、Java集合框架的认识

 我们平时写代码时候,经常会用到Java的一些集合类,但是我们有真正的人系统的认识它们吗?或者你认识了,过了一段时间你还记得它们吗?相信大多数同学都是仅仅对集合类中的某一些常用的类有印象,因此现在我想把这些集合类进行一个详细的整理,从而方便自己和大家们一起加深对Java集合类的认识。

 根据上述思路,咱们先看下来源,Java集合是Java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等等,Java集合工具包的位置是java.util.*,Java集合主要有4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)。

 集合框架是一个用来代表和操纵集合的统一架构,所有的集合框架都包含如下内容:

  • 接口:是代表集合的抽象数据类型。例如Collection、List、Set、Map等。之所以定义多个接口,是为了以不同的方式操作集合对象。
  • 实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。
  • 算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。
  • 除了集合,该框架也定义了几个Map接口和类。Map里存储的是键/值对。尽管Map不是集合,但是它们完全整合在集合中。

2、Java集合框架图

Java集合篇(1)如何正确打开Java集合框架
注意:虚线框是接口,实线框是类。
 看到上图后是不是觉得有点乱,别着急,现在咱们把它们捋一捋分个类就清楚了。
 (1)Collection,具有集合的基本操作和属性的高度抽象的接口,有三个子类分别如下:

  • List是一个有序的队列,实现类有4个:LinkedList, ArrayList, Vector, Stack。
  • Set是一个不允许有重复元素的集合。实现类有3个:TreeSet、HastSet、LinkHastSet。
  • Queue

 (2)Map,一个映射接口,即key-value键值对。

  • AbstractMap是个抽象类,它实现了Map接口中的大部分API。实现类有6个:TreeMap、HashMap、LinkHashMap、IdentityHashMap、WeakHashMap、HashTable。
  • SortedMap 是继承于Map的接口。内容是排序的键值对,通过比较器(Comparator)。

 (3)Iterator,它是遍历集合的工具,即我们通常通过Iterator迭代器来遍历集合。

3、Java集合框架各种类的使用场景

 为了方便描述,直接上图比较直观
Java集合篇(1)如何正确打开Java集合框架