collection
在java集合中,算是頂級接口,它繼承了iterable
接口,不能實例化,只能實例化其子類。之因此須要這樣一個接口,是由於java做爲面向對象,老是避免不了處理多個對象的狀況,要處理多個對象,首先須要容器存儲,這個容器就是集合。爲何有了數組,還須要集合,由於數組的功能單一,長度不可變,而有些集合實現類則是對數組操做的封裝。java
Collection
集合和數組的區別:數組
graph TD; Collection -->List-有順序,可重複 List-有順序,可重複 -->LinkedList-使用鏈表實現,線程不安全 List-有順序,可重複 -->ArrayList-數組實現,線程不安全 List-有順序,可重複 -->Vector-數組實現,線程安全 Vector-數組實現,線程安全 -->Stack-堆棧,先進後出 Collection-->Set-不可重複,內部排序 Set-不可重複,內部排序-->HashSet-hash表存儲 HashSet-hash表存儲-->LinkHashSet-鏈表維護插入順序 Set-不可重複,內部排序-->TreeSet-二叉樹實現,排序 Collection-->Queue-隊列,先進先出
Collection
繼承於Iterable
接口,而Iterable
接口,是集合的頂級接口,沒有之一,Iterable
接口定義的功能是能夠迭代,也就是獲取迭代器iterator
的功能,所以Collection
以及其實現類也間接得到迭代的功能。 安全
爲何須要這樣子定義呢?我陷入了深深地思考...ide