亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

集合Collection總覽

FullStackDeveloper / 2190人閱讀

前言
聲明,本文使用的是JDK1.8

從今天開始正式去學(xué)習(xí)Java基礎(chǔ)中最重要的東西--->集合

無論在開發(fā)中,在面試中這個(gè)知識(shí)點(diǎn)都是非常非常重要的,因此,我在此花費(fèi)的時(shí)間也是很多,得參閱挺多的資料,下面未必就做到日更了...

當(dāng)然了,如果講得有錯(cuò)的地方還請(qǐng)大家多多包涵并不吝在評(píng)論去指正~

一、集合(Collection)介紹 1.1為什么需要Collection

Java是一門面向?qū)ο蟮恼Z言,就免不了處理對(duì)象

為了方便操作多個(gè)對(duì)象,那么我們就得把這多個(gè)對(duì)象存儲(chǔ)起來

想要存儲(chǔ)多個(gè)對(duì)象(變量),很容易就能想到一個(gè)容器

常用的容器我們知道有-->StringBuffered,數(shù)組(雖然有對(duì)象數(shù)組,但是數(shù)組的長度是不可變的!)

所以,Java就為我們提供了集合(Collection)~

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

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

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

1:長度的區(qū)別

數(shù)組的長度固定

集合的長度可變

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

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

集合只能存儲(chǔ)引用類型(你存儲(chǔ)的是簡單的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è)方法...

點(diǎn)進(jìn)去看了一下,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ù)組。線程安全

現(xiàn)在知道有三個(gè)常用的集合類即可,后面會(huì)開新的文章來講解的

四、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)由哈希表和鏈表組成。

五、最后

本篇主要概括了Collection的要點(diǎn),并沒有深入去研究各種的集合類,該部分留到新開的章節(jié)去講解,敬請(qǐng)期待~~

明天是清明節(jié)(回家),這兩天是不更新集合的了,如果在家有空可能會(huì)刷幾道算法題然后整理后會(huì)更新公眾號(hào)~

文章的目錄導(dǎo)航:https://zhongfucheng.bitcron.com/post/shou-ji/gong-zhong-hao-wen-zhang-zheng-li

參考資料:

Core Java

數(shù)據(jù)結(jié)構(gòu)與算法分析,Java語言描述

如果文章有錯(cuò)的地方歡迎指正,大家互相交流。習(xí)慣在微信看技術(shù)文章,想要獲取更多的Java資源的同學(xué),可以關(guān)注微信公眾號(hào):Java3y

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/68916.html

相關(guān)文章

  • Java8新特性總覽

    摘要:新特性總覽標(biāo)簽本文主要介紹的新特性,包括表達(dá)式方法引用流默認(rèn)方法組合式異步編程新的時(shí)間,等等各個(gè)方面。還有對(duì)應(yīng)的和類型的函數(shù)連接字符串廣義的歸約匯總起始值,映射方法,二元結(jié)合二元結(jié)合。使用并行流時(shí)要注意避免共享可變狀態(tài)。 Java8新特性總覽 標(biāo)簽: java [TOC] 本文主要介紹 Java 8 的新特性,包括 Lambda 表達(dá)式、方法引用、流(Stream API)、默認(rèn)方...

    mayaohua 評(píng)論0 收藏0
  • Map集合、散列表、紅黑樹介紹

    摘要:并且,我們的底層都是紅黑樹來實(shí)現(xiàn)的。紅黑樹是一種平衡二叉樹因此它沒有節(jié)點(diǎn)。 前言 聲明,本文用得是jdk1.8 前面已經(jīng)講了Collection的總覽和剖析List集合: Collection總覽 List集合就這么簡單【源碼剖析】 原本我是打算繼續(xù)將Collection下的Set集合的,結(jié)果看了源碼發(fā)現(xiàn):Set集合實(shí)際上就是HashMap來構(gòu)建的! showImg(https:/...

    2json 評(píng)論0 收藏0
  • List集合就這么簡單【源碼剖析】

    摘要:線程不安全底層數(shù)據(jù)結(jié)構(gòu)是鏈表。的默認(rèn)初始化容量是,每次擴(kuò)容時(shí)候增加原先容量的一半,也就是變?yōu)樵瓉淼谋秳h除元素時(shí)不會(huì)減少容量,若希望減少容量則調(diào)用它不是線程安全的。 前言 聲明,本文用得是jdk1.8 前一篇已經(jīng)講了Collection的總覽:Collection總覽,介紹了一些基礎(chǔ)知識(shí)。 現(xiàn)在這篇主要講List集合的三個(gè)子類: ArrayList 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組。線程不安全 ...

    cpupro 評(píng)論0 收藏0
  • HashMap就是這么簡單【源碼剖析】

    前言 聲明,本文用得是jdk1.8 前面已經(jīng)講了Collection的總覽和剖析List集合以及散列表、Map集合、紅黑樹的基礎(chǔ)了: Collection總覽 List集合就這么簡單【源碼剖析】 Map集合、散列表、紅黑樹介紹 本篇主要講解HashMap,以及涉及到一些與hashtable的比較~ 看這篇文章之前最好是有點(diǎn)數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ): Java實(shí)現(xiàn)單向鏈表 棧和隊(duì)列就是這么簡單 二叉樹就...

    entner 評(píng)論0 收藏0
  • LinkedHashMap就這么簡單【源碼剖析】

    摘要:習(xí)慣在微信看技術(shù)文章,想要獲取更多的資源的同學(xué),可以關(guān)注微信公眾號(hào)。為了大家方便,剛新建了一下群,大家也可以去交流交流。謝謝支持了希望能多介紹給其他有需要的朋友 前言 聲明,本文用得是jdk1.8 前面已經(jīng)講了Collection的總覽和剖析List集合以及散列表、Map集合、紅黑樹還有HashMap基礎(chǔ)了: Collection總覽 List集合就這么簡單【源碼剖析】 Map集合、...

    avwu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

FullStackDeveloper

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<