「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」
前言
大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习进步。
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍Collection集合下的多个接口和实现类的基本作用,让读者了解Collection集合的基本架构。
Collection体系
(Collection接口派生了很多接口,这里我们就学习常用的即可。)
首先是三大子接口:
-
Set接口:无序集合,元素不能重复。
Set接口下有:
-
EunmSet抽象类 :与枚举类型一起使用的专用 Set 实现类。
-
SortedSet接口:进一步提供了关于元素的总体排序 的 Set接口。
- TreeSet类:TreeSet类是有序的,即加入到其中的元素会自动排序,排序方式根据构造函数而改变。此类不是同步的。
-
HashSet类: 由哈希表(实际上是一个
HashMap实例)支持。它不保证 set 的迭代顺序(即加入的顺序可能和读取出的元素顺序不同);此类允许使用null元素。需要注意的是:此类不是同步的。- LinkedHashSet类:按照加入的元素顺序来进行迭代。实际是由哈希表和链接列表实现,可以存放null元素, 并且此类不是同步的。
-
-
Queue接口:队列。
队列接口,具有先进先出(FIFO)的特点。
-
Deque接口(double ended queue(双端队列)):可以在队列的两端进行元素的加入和删除。
- ArrayDeque:Deque的可变数组的实现。不能存放null元素。
-
PriorityQueue类:优先级队列,元素按照自然顺序进行排序或根据指定的比较器进行排序。不能存放null元素,此类不是同步的。
-
-
List接口:有序集合,元素可以重复。
-
ArrayList类:List接口的可变数组实现,可以存放null元素,此类不是同步的。
-
LinkedList类:
List接口的链接列表实现,也实现了Deque接口。可以存放null元素,此类不是同步的。 -
Vector类:和ArrayList类类似,区别是前者不是线程同步的,而Vector是线程同步的,我们多使用ArrayList。
-
Stack类:堆栈的实现,具有后进先出的特点。常用Deque来代替:
Deque<Integer> stack = new ArrayDeque<Integer>();
-
-
小结
以上就是我对Collection集合架构的一些基本了解,和其派生出的接口和实现类的一些基本介绍,之后我们来逐个学习其用法。
希望以上内容能对读者有所帮助,如有不正之处,欢迎留言评论。