成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java 基礎(chǔ) | Collection 集合概覽

codergarden / 3074人閱讀

摘要:說到復(fù)盤基礎(chǔ),并不是所有的都會(huì)復(fù)盤,沒那個(gè)時(shí)間更沒那個(gè)必要。比如,一些基礎(chǔ)的語法以及條件語句,極度簡單。思前想后,我覺得整個(gè)計(jì)劃應(yīng)該從集合開始,而復(fù)盤的方式就是讀源碼。通常,隊(duì)列不允許隨機(jī)訪問隊(duì)列中的元素。

?

老讀者都知道,我是自學(xué)轉(zhuǎn)行到 java 的。那時(shí)迫于生存壓力,學(xué)得比較快,很多知識(shí)點(diǎn)僅停留在會(huì)用的層面。最近,光會(huì)用不知道原理,沒什么意思。每次使用時(shí)都是機(jī)械性的 "熟練使用"。加之一直有回歸基礎(chǔ)的想法,所以想在業(yè)余時(shí)間復(fù)盤 java 的基礎(chǔ)知識(shí)。知其然知其所以然是技術(shù)人的追求。

說到復(fù)盤基礎(chǔ),并不是所有的都會(huì)復(fù)盤,沒那個(gè)時(shí)間更沒那個(gè)必要。比如,一些基礎(chǔ)的語法以及條件語句,極度簡單。這類是不需要復(fù)盤的。思前想后,我覺得整個(gè)計(jì)劃應(yīng)該從集合開始,而復(fù)盤的方式就是讀源碼。

1、Java 為什么要有集合?

首先,java 是一門面向?qū)ο笳Z言,操作對(duì)象是我們的日常。既然操作就需要有東西把對(duì)象存儲(chǔ)起來。于是容器就應(yīng)運(yùn)而生,初學(xué)者接觸到的第一個(gè)容器就是數(shù)組,但這遠(yuǎn)遠(yuǎn)不夠,根據(jù)不同的對(duì)象以及不同的業(yè)務(wù),我們需要用到不同的容器。比如,不想要重復(fù)對(duì)象,我們就會(huì)想到用 set 容器,想要對(duì)象有序我們會(huì)用 List 。不管是 List、Set。他們都會(huì)有共性,?而 java 就根據(jù)這些共性,給我們提供了 Collection 集合。

2、Collection?接口框架圖

由上面的 Collection 接口框架圖,我們可以知道 Collection 是 List、Set、Queue 的父接口,看到這里,你們可能會(huì)問,Map 哪去了?其實(shí),Java 中的容器,包括 Collection 和 Map ,Map 是另外一個(gè)體系,所以我們今天先不講 Map 。

3、Collection 的方法

Collection 接口定義了以上待實(shí)現(xiàn)的方法。比如:

size() 計(jì)算容器長度

isEmpty() 是否為空

contains()?是否包含某個(gè)對(duì)象

containsAll()?是否包含另一個(gè)集合的所有對(duì)象

iterator()?上層接口?iterable 的方法,用于生成迭代對(duì)象,遍歷對(duì)象

add() 添加一個(gè)對(duì)象

add() 添加另一個(gè)集合的所有對(duì)象

remove() 移除一個(gè)對(duì)象

removeAll()?移除所有對(duì)象

toArray() 把集合轉(zhuǎn)換成數(shù)組

retainAll()?是否與另一個(gè)集合有交集

4、List 子接口

List 集合的特點(diǎn)是元素有序、可重復(fù),它包含了 ArrayList、Vendor 和 LinkedList 這三個(gè)實(shí)現(xiàn)類。三者比較如下:

5、Set 子接口

Set 集合最大的特點(diǎn)是不允許重復(fù)元素,它有 HashSet、TreeSet、LinkedHashSet 、EnumSet 四個(gè)實(shí)現(xiàn)類,對(duì)比如下:

至于EnumSet 類,我還沒研究過怎么使用,在網(wǎng)上查了下,它是專為枚舉類設(shè)計(jì)的集合類,EnumSet 中的所有元素都必須是指定枚舉類型的枚舉值,具體的這里先不做介紹,待我研究下用法以及場(chǎng)景,再專門介紹。

6、Queue 子接口

Queue 用的不多,它常用于模擬隊(duì)列這種數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn) FIFO 等數(shù)據(jù)結(jié)構(gòu)。通常,隊(duì)列不允許隨機(jī)訪問隊(duì)列中的元素。在工作中,我還沒有使用過,待我研究過,再來跟大家分享。

推薦閱讀:

1、java | 什么是動(dòng)態(tài)代理

2、SpringBoot?| 啟動(dòng)原理

3、SpringBoot | 自動(dòng)配置原理

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

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

相關(guān)文章

  • Java 性能調(diào)優(yōu)指南之 Java 集合概覽

    摘要:單線程集合本部分將重點(diǎn)介紹非線程安全集合。非線程安全集合框架的最新成員是自起推出的。這是標(biāo)準(zhǔn)的單線程陣營中唯一的有序集合。該功能能有效防止運(yùn)行時(shí)造型。檢查個(gè)集合之間不存在共同的元素。基于自然排序或找出集合中的最大或最小元素。 【編者按】本文作者為擁有十年金融軟件開發(fā)經(jīng)驗(yàn)的 Mikhail Vorontsov,文章主要概覽了所有標(biāo)準(zhǔn) Java 集合類型。文章系國內(nèi) ITOM 管理平臺(tái) O...

    gnehc 評(píng)論0 收藏0
  • Java快速掃盲指南

    摘要:不相等的對(duì)象要具有不相等的哈希碼為了哈希表的操作效率,這一點(diǎn)很重要,但不是強(qiáng)制要求,最低要求是不相等的對(duì)象不能共用一個(gè)哈希碼。方法和方法協(xié)同工作,返回對(duì)象的哈希碼。這個(gè)哈希碼基于對(duì)象的身份生成,而不是對(duì)象的相等性。 本文面向 剛學(xué)完Java的新手們。這篇文章不講語法,而是一些除了語法必須了解的概念。 將要去面試的初級(jí)工程師們。查漏補(bǔ)缺,以免遭遇不測(cè)。 目前由于篇幅而被挪出本文的知識(shí)...

    Tony_Zby 評(píng)論0 收藏0
  • Java? 教程(集合接口)

    集合接口 核心集合接口封裝了不同類型的集合,如下圖所示,這些接口允許獨(dú)立于其表示的細(xì)節(jié)來操縱集合,核心集合接口是Java集合框架的基礎(chǔ),如下圖所示,核心集合接口形成層次結(jié)構(gòu)。 showImg(https://segmentfault.com/img/bVbntJW?w=402&h=146); Set是一種特殊的Collection,SortedSet是一種特殊的Set,依此類推,另請(qǐng)注意,層次結(jié)構(gòu)...

    elisa.yang 評(píng)論0 收藏0
  • 集合總結(jié)

    摘要:當(dāng)使用迭代器訪問集合元素時(shí),中的元素不能被改變,只能通過的方法刪除上一次方法返回的集合元素才可以否則將會(huì)引發(fā)異常。可以確保集合元素處于有序狀態(tài)。返回中所有鍵值對(duì)組成的視圖,每個(gè)集合元素都是是的內(nèi)部類對(duì)象。這種集合稱為視圖。 1.集合概覽 集合包括兩大接口:Collection 和 Map。 Map TreeMap HashMap LinkedHashMap Collecti...

    yanbingyun1990 評(píng)論0 收藏0
  • 集合Collection總覽

    前言 聲明,本文使用的是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言,...

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

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

0條評(píng)論

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