日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Collection

發(fā)布時(shí)間:2024/4/24 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 Collection 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、集合(Collection)介紹

1.1為什么需要Collection

Java是一門面向?qū)ο蟮恼Z言,就免不了處理對(duì)象
為了方便操作多個(gè)對(duì)象,那么我們就得把這多個(gè)對(duì)象存儲(chǔ)起來
想要存儲(chǔ)多個(gè)對(duì)象(變量),很容易就能想到一個(gè)容器
常用的容器我們知道有-->StringBuffered,數(shù)組(雖然有對(duì)象數(shù)組,但是數(shù)組的長(zhǎng)度是不可變的!)
所以,Java就為我們提供了集合(Collection)

1.2數(shù)組和集合的區(qū)別

接下來,我們可以對(duì)數(shù)組和集合的區(qū)別來分析一下:

數(shù)組和集合的區(qū)別:

1:長(zhǎng)度的區(qū)別

    –數(shù)組的長(zhǎng)度固定

    –集合的長(zhǎng)度可變

2:內(nèi)容不容

    –數(shù)組存儲(chǔ)的是同一種類型的元素

    –集合可以存儲(chǔ)不同類型的元素(但是一般我們不這樣干..)

3:元素的數(shù)據(jù)類型

    –數(shù)組可以存儲(chǔ)基本數(shù)據(jù)類型,也可以存儲(chǔ)引用類型

    –集合只能存儲(chǔ)引用類型(你存儲(chǔ)的是簡(jiǎn)單的int,它會(huì)自動(dòng)裝箱成Integer)

1.3Collection的由來與功能

Collection的由來:

集合可以存儲(chǔ)多個(gè)元素,但我們對(duì)多個(gè)元素也有不同的需求

    –多個(gè)元素,不能有相同的

    –多個(gè)元素,能夠按照某個(gè)規(guī)則排序

針對(duì)不同的需求:java就提供了很多集合類,多個(gè)集合類的數(shù)據(jù)結(jié)構(gòu)不同。但是,結(jié)構(gòu)不重要,重要的是能夠存儲(chǔ)東西,能夠判斷,獲取
把集合共性的內(nèi)容不斷往上提取,最終形成集合的繼承體系---->Collection

Collection的大致結(jié)構(gòu)體系是這樣的:

但是,一般我們要掌握的并不需要那么多,只需要掌握一些常用的集合類就行了。下面我圈出來的那些:

Collection的基礎(chǔ)功能:

二、迭代器(Iterator)介紹

我們可以發(fā)現(xiàn)Collection的源碼中繼承了Iterable,有iterator()這個(gè)方法,Iterable是一個(gè)接口:

它有iterator()這個(gè)方法,返回的是Iterator

再來看一下,Iterator也是一個(gè)接口,它只有三個(gè)方法:

hasNext()
next()
remove()

可是,我們沒能找到對(duì)應(yīng)的實(shí)現(xiàn)方法,只能往Collection的子類下找找了,于是我們找到了--->ArrayList(該類后面會(huì)說)

于是,我們?cè)贏rrayList下找到了iterator實(shí)現(xiàn)的身影:它是在ArrayList以內(nèi)部類的方式實(shí)現(xiàn)的!并且,從源碼可知:Iterator實(shí)際上就是在遍歷集合。

所以說:我們遍歷集合(Collection)的元素都可以使用Iterator,至于它的具體實(shí)現(xiàn)是以內(nèi)部類的方式實(shí)現(xiàn)的。

三、List集合介紹

從上面已經(jīng)可以看到了,Collection主要學(xué)習(xí)集合的類型兩種:Set和List,這里主要講解List!

我們來看一下List接口的方法,比Collection多了一點(diǎn)點(diǎn):

List集合的特點(diǎn)就是:有序(存儲(chǔ)順序和取出順序一致),可重復(fù)

Collection返回的是Iterator迭代器接口,而List中又有它自己對(duì)應(yīng)的實(shí)現(xiàn)-->ListIterator接口

該接口比普通的Iterator接口多了幾個(gè)方法:

從方法名就可以知道:ListIterator可以往前遍歷,添加元素,設(shè)置元素。

3.1List集合常用子類

List集合常用的子類有三個(gè):

ArrayList

    –底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組。線程不安全

LinkedList

    –底層數(shù)據(jù)結(jié)構(gòu)是鏈表。線程不安全

Vector

    –底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組。線程安全

四、Set集合介紹

從Set集合的方法我們可以看到:方法沒有比Collection要多

Set集合的特點(diǎn)是:元素不可重復(fù)

4.1Set集合常用子類

HashSet集合

    –A:底層數(shù)據(jù)結(jié)構(gòu)是哈希表(是一個(gè)元素為鏈表的數(shù)組)

TreeSet集合

    –A:底層數(shù)據(jù)結(jié)構(gòu)是紅黑樹(是一個(gè)自平衡的二叉樹)

    –B:保證元素的排序方式

LinkedHashSet集合

    –A::底層數(shù)據(jù)結(jié)構(gòu)由哈希表和鏈表組成。

總結(jié)

以上是生活随笔為你收集整理的Collection的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。