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集合框架图
- 注意:细虚线框是接口,粗虚线框是抽象类,实线框是具体类,Produces 代表。
- 看到上图后是不是觉得有点乱,别着急,现在咱们把它们捋一捋分个类就清楚了。
- (1)Collection,具有集合的基本操作和属性的高度抽象的接口,有三个子类分别如下:
- List 是一个有序的队列,实现类有:Vector、Stack、ArrayList、LinkedList。
- Set 是一个不允许有重复元素的集合。实现类有:HastSet、LinkHastSet、TreeSet。
- Queue 是一个特殊的线性表(队列),实现类有:LinkedList、PriorityQueue。
- (2)Map,一个映射接口,即 key-value 键值对。
- AbstractMap 是个抽象类,它实现了 Map 接口中的大部分 API。实现类有6个:HashMap、LinkHashMap、Hashtable、TreeMap、IdentityHashMap、WeakHashMap。
- SortedMap 是继承于 Map 的接口。内容是排序的键值对,通过比较器(Comparator)。
- (3)Iterator,它是遍历集合的工具,即我们通常通过Iterator迭代器来遍历集合。
3、Java 集合框架各种类的使用场景
- 为了方便描述,直接上图比较直观
总结
- 参考文献:
- https://www.runoob.com/java/java-collections.html