Collection
一、集合(Collection)介紹
1.1為什么需要Collection
Java是一門面向對象的語言,就免不了處理對象
為了方便操作多個對象,那么我們就得把這多個對象存儲起來
想要存儲多個對象(變量),很容易就能想到一個容器
常用的容器我們知道有-->StringBuffered,數組(雖然有對象數組,但是數組的長度是不可變的!)
所以,Java就為我們提供了集合(Collection)
1.2數組和集合的區別
接下來,我們可以對數組和集合的區別來分析一下:
數組和集合的區別:
1:長度的區別
–數組的長度固定
–集合的長度可變
2:內容不容
–數組存儲的是同一種類型的元素
–集合可以存儲不同類型的元素(但是一般我們不這樣干..)
3:元素的數據類型
–數組可以存儲基本數據類型,也可以存儲引用類型
–集合只能存儲引用類型(你存儲的是簡單的int,它會自動裝箱成Integer)
1.3Collection的由來與功能
Collection的由來:
集合可以存儲多個元素,但我們對多個元素也有不同的需求
–多個元素,不能有相同的
–多個元素,能夠按照某個規則排序
針對不同的需求:java就提供了很多集合類,多個集合類的數據結構不同。但是,結構不重要,重要的是能夠存儲東西,能夠判斷,獲取
把集合共性的內容不斷往上提取,最終形成集合的繼承體系---->Collection
Collection的大致結構體系是這樣的:
但是,一般我們要掌握的并不需要那么多,只需要掌握一些常用的集合類就行了。下面我圈出來的那些:
Collection的基礎功能:
二、迭代器(Iterator)介紹
我們可以發現Collection的源碼中繼承了Iterable,有iterator()這個方法,Iterable是一個接口:
它有iterator()這個方法,返回的是Iterator
再來看一下,Iterator也是一個接口,它只有三個方法:
hasNext()
next()
remove()
可是,我們沒能找到對應的實現方法,只能往Collection的子類下找找了,于是我們找到了--->ArrayList(該類后面會說)
于是,我們在ArrayList下找到了iterator實現的身影:它是在ArrayList以內部類的方式實現的!并且,從源碼可知:Iterator實際上就是在遍歷集合。
所以說:我們遍歷集合(Collection)的元素都可以使用Iterator,至于它的具體實現是以內部類的方式實現的。
三、List集合介紹
從上面已經可以看到了,Collection主要學習集合的類型兩種:Set和List,這里主要講解List!
我們來看一下List接口的方法,比Collection多了一點點:
List集合的特點就是:有序(存儲順序和取出順序一致),可重復
Collection返回的是Iterator迭代器接口,而List中又有它自己對應的實現-->ListIterator接口
該接口比普通的Iterator接口多了幾個方法:
從方法名就可以知道:ListIterator可以往前遍歷,添加元素,設置元素。
3.1List集合常用子類
List集合常用的子類有三個:
ArrayList
–底層數據結構是數組。線程不安全
LinkedList
–底層數據結構是鏈表。線程不安全
Vector
–底層數據結構是數組。線程安全
四、Set集合介紹
從Set集合的方法我們可以看到:方法沒有比Collection要多
Set集合的特點是:元素不可重復
4.1Set集合常用子類
HashSet集合
–A:底層數據結構是哈希表(是一個元素為鏈表的數組)
TreeSet集合
–A:底層數據結構是紅黑樹(是一個自平衡的二叉樹)
–B:保證元素的排序方式
LinkedHashSet集合
–A::底層數據結構由哈希表和鏈表組成。
總結
以上是生活随笔為你收集整理的Collection的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Buffer
- 下一篇: d3.js:数据可视化利器之 selec