在平时写代码的时候,我们经常会使用到java的一些集合类,还记得我在刚刚学习的时候,因为这些集合类太多,没有把他们的特点还有使用场景记清楚,所以在使用的时候对软件的性能造成了很大的影响,因此现在我想把这些集合类进行一个详细的整理,方便别人面试或者是初学者理解其概念。
这篇文章的大体结构如下:
1、对java集合框架一个整体的认识和了解
2、通过继承关系图认识集合的整体框架
3、提前给出各个集合类的使用场景等
一、集合框架的认识
对于集合框架的认识,为了防止时间久,而印象变得模糊,所以我自己是这样记得,这个方法以供参考吧,假定给定一个集合类,可以把他当成一个人,首先记住从哪里来(继承关系),然后有什么本事(底层的数据结构决定了特点),最后到哪里去(使用场景)。
根据上述的思路,先看一下来源(在这里先不说继承关系),Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*
**有什么本事呢?**Java集合主要有4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)。
**使用场景呢?**一句话,每一个容器(集合类)能盛不同的液体(数据)。所以容器的功能不同使用场景不同。
二、java集合类框架
为了清晰的认识,来张图。
太多了,是不是有点乱,别着急,现在把他们捋一捋分个类就清晰了。
先抓住它的主干,即Iterator、Collection和Map。(虚框线是接口,实框线是类)
1、 Collection
包含了集的基本操作和属性的高度抽象的接口。
Collection包含了List和Set两大分支。
(1) List是一个有序的队列,实现类有4个:LinkedList, ArrayList, Vector, Stack。
(2) Set是一个不允许有重复元素的集合。实现类有3个:TreeSet、HastSet、LinkHastSet。
2、 Map
一个映射接口,即key-value键值对。
(1)AbstractMap是个抽象类,它实现了Map接口中的大部分API。实现类有6个:TreeMap、HashMap、LinkHashMap、IdentityHashMap、WeakHashMap、HashTable
(2)SortedMap 是继承于Map的接口。内容是排序的键值对,通过比较器(Comparator)
3、Iterator。
它是遍历集合的工具,即我们通常通过Iterator迭代器来遍历集合。
三、集合总体框架的各个类的使用场景
为了描述方便,我觉得还是图比较直观
具体的,可以先有个印象,等把所有的集合类学完了之后,再来看这个印象会比较深刻一点。