聯(lián)系我們 - 廣告服務(wù) - 聯(lián)系電話:
您的當(dāng)前位置: > 關(guān)注 > > 正文

天天快看:【javase】Array集合的常用方法

來(lái)源:CSDN 時(shí)間:2023-03-22 10:38:53

目錄


【資料圖】

集合

集合基礎(chǔ)

ArrayList集合的常用方法

Collection 的常用方法

Collection 的遍歷

遍歷集合的基本步驟:

List集合

List集合的概述以及特點(diǎn)

List集合的特有方法:

List迭代器:

List增強(qiáng)for循環(huán):

LinkedList集合的特有功能:

Set集合

set集合的特點(diǎn):

哈希值:

哈希表的存儲(chǔ)過(guò)程

LinkedHashSet集合的概述和特點(diǎn)

TreeSet集合

TreeSet的特點(diǎn)

Comparable的使用

Comparator比較器排序的使用

泛型

泛型的定義格式

泛型的好處:

泛型類的定義格式

泛型方法

泛型方法的定義格式

泛型接口:

類型通配符

可變參數(shù):

Map集合

Map集合概述

添加元素

Map集合的基本功能

Map集合的獲取方法

Map集合的遍歷

HashMap集合

集合的嵌套案例

案例:統(tǒng)計(jì)字符串中每個(gè)字符出現(xiàn)的次數(shù)

Collections

常用方法

案例:ArrayList存儲(chǔ)學(xué)生對(duì)象并排序

案例:模擬斗地主(洗牌,發(fā)牌,看牌)

案例:模擬斗地主升級(jí)版

集合

集合的作用是用來(lái)存儲(chǔ)和取出數(shù)據(jù)的

集合基礎(chǔ)

提供一種存儲(chǔ)空間可變的存儲(chǔ)模型,存儲(chǔ)的數(shù)據(jù)容量可以發(fā)生改變

格式:ArrayList

E:是一種特殊的數(shù)據(jù)類型,泛型。

例:ArrayList、ArrayList

構(gòu)造方法和添加方法

具體實(shí)例

當(dāng)指定添加集合位置的時(shí)候,如果當(dāng)前指定的位置比當(dāng)前最高位置要高2位甚至更多事,會(huì)報(bào)錯(cuò)

例如:如上圖,現(xiàn)在最大的位置從0開(kāi)始最大位置為2,那么我現(xiàn)在array.add(4,"javase");

則我現(xiàn)在比最大的位置多出了2,所以會(huì)出現(xiàn)報(bào)錯(cuò),這種錯(cuò)誤稱為集合的索引越界

ArrayList集合的常用方法

如下:

遍歷ArrayList集合

通過(guò)get關(guān)鍵字和for循環(huán)實(shí)現(xiàn)

array為集合名

ArrayList的相關(guān)練習(xí)

Collection(單列集合)

Map(雙列集合)

關(guān)系表如下:

Collection 的創(chuàng)建及添加元素

Collectionc=new ArrayList();

c.add("hello");

c.add("world");

Collection 的常用方法

Collection 的遍歷

Iterator:迭代器,集合的專用遍歷方式;

Iterator的常用方法

實(shí)例:

遍歷集合的基本步驟:

關(guān)于Collection 的練習(xí):

結(jié)果:

List集合

List集合的概述以及特點(diǎn)

List集合的特有方法:

List迭代器:

ListIterator:可以從任意方向遍歷列表(可以從前到后也可以從后到前),

ListIterator方法的不同之處

與Iterator相對(duì)應(yīng)的next()對(duì)應(yīng)previous()//返回列表中上一個(gè)元素,并向后移動(dòng)光標(biāo)位置

hasNext()相對(duì)應(yīng)的hasprevious()

List增強(qiáng)for循環(huán):

Itable:底層包裝的是一個(gè)Iterator迭代器

實(shí)例:

List集合子類特點(diǎn):

ArrayList:對(duì)應(yīng)數(shù)組(查詢快增刪慢)

LinkedList:對(duì)應(yīng)鏈表(查詢慢增刪快)

LinkedList集合的特有功能:

Set集合

set集合的特點(diǎn):

HashSet:對(duì)集合的迭代順序不做任何保證(不排序)

即存儲(chǔ)順序不一樣

哈希值:

哈希值是jdk根據(jù)對(duì)象的地址或者字符串或者數(shù)字算出來(lái)的int類型的數(shù)值

public int hashCode():該方法可以返回對(duì)象的哈希碼值

同一個(gè)對(duì)象多次調(diào)用該方法返回的哈希值為一樣的

然而默認(rèn)情況下不同對(duì)象的哈希值是不一樣的

重寫(xiě)方法可以讓哈希值相同

HashSet集合的特點(diǎn):

哈希表

哈希表的存儲(chǔ)過(guò)程

首先我們哈希表其實(shí)是一個(gè)數(shù)組,默認(rèn)長(zhǎng)度為16,首先先計(jì)算出哈希值,然后通過(guò)哈希值取余16,算出結(jié)果來(lái)之后,從第一個(gè)開(kāi)始如果當(dāng)前計(jì)算出來(lái)的位置沒(méi)有人的話就直接存儲(chǔ),如果有人那么就進(jìn)行哈希值的比較,如果哈希值不相同那么就存儲(chǔ)進(jìn)去,如果相同那么就比較內(nèi)容,如果內(nèi)容一樣那就不存儲(chǔ)當(dāng)前的內(nèi)容,反之則可以將其存儲(chǔ)進(jìn)去

LinkedHashSet集合的概述和特點(diǎn)

TreeSet集合

TreeSet的特點(diǎn)

我們的TreeSet不能單單使用普通類型,必須使用它的包裝類型

自然排序:從小到大排序

Comparable的使用

Comparator比較器排序的使用

泛型

泛型的本質(zhì)是參數(shù)化類型

泛型的定義格式

泛型的好處:

泛型類的定義格式

泛型類的使用(聲明泛型是什么類型就是什么類型)

泛型方法

通過(guò)泛型類我們可以在調(diào)用該方法的時(shí)候無(wú)論使用什么類型都是可以的

泛型方法的定義格式

通過(guò)泛型方法我們可以接受任意的引用類型如:

優(yōu)點(diǎn): 可以不用聲明是什么泛型,可以在調(diào)用的時(shí)候直接調(diào)用,這時(shí)它會(huì)自動(dòng)識(shí)別。

泛型接口:

泛型接口的實(shí)現(xiàn)類

類型通配符

可變參數(shù):

通過(guò)可變參數(shù)可以進(jìn)行多個(gè)數(shù)據(jù)的計(jì)算

注意事項(xiàng)

可變參數(shù)的使用

Arrays.asList只能更改值,不能增加和刪除值

List.of方法的增刪改都不行

Set.of方法不允許有重復(fù)值,不能進(jìn)行增刪操作 ,沒(méi)有修改的方法

Map集合

Map集合概述

(Map是一個(gè)接口)

創(chuàng)建Map集合的對(duì)象

添加元素

保證鍵的唯一性

當(dāng)添加的元素如果,它們的鍵值相同,那么它會(huì)替換掉它之前的數(shù)據(jù),看以上的案例,當(dāng)

柳巖這個(gè)元素添加上來(lái)后,因?yàn)樗c王祖賢這個(gè)元素的鍵值相同,所以它會(huì)替換掉王祖賢這個(gè)元素

Map集合的基本功能

Map集合的獲取方法

get:根據(jù)鍵值獲取值,如果不存在則返回null

KeySet:獲取所有鍵的集合

values:獲取所有值的集合

Map集合的遍歷

一、

實(shí)例

第二種方法

通過(guò)EntrySet(鍵值對(duì)對(duì)象)方法獲取Key值和value值

HashMap集合

同以上Hash一樣,沒(méi)有順序,只能用增強(qiáng)for遍歷

HashMap保證數(shù)據(jù)的唯一性

要重寫(xiě)hashCode()方法和equals()方法

HashMap集合存儲(chǔ)學(xué)生對(duì)象并遍歷,而且保證數(shù)據(jù)的唯一性

集合的嵌套案例

ArrayList集合存儲(chǔ)HashMao元素并遍歷

實(shí)例:

HashMap集合存儲(chǔ)ArrayList元素并遍歷

實(shí)例:

案例:統(tǒng)計(jì)字符串中每個(gè)字符出現(xiàn)的次數(shù)

實(shí)例:

使用TreeMap來(lái)進(jìn)行優(yōu)化(對(duì)key值進(jìn)行排序)

Collections

是針對(duì)集合類操作的工具類

常用方法

Collections.sort(list) ; //從小到大排序

Collections.reverse(list) ; //反轉(zhuǎn),將原來(lái)的順序進(jìn)行反轉(zhuǎn)排序

Collections.shuffle(list); //隨機(jī)置換 ,每次運(yùn)行都產(chǎn)生在不同的位置

案例:ArrayList存儲(chǔ)學(xué)生對(duì)象并排序

直接利用Collections.sort 方法進(jìn)行排序

注意:由于sort方法需要的是List 但我們現(xiàn)在是ArraryList 所以我們需要給定一個(gè)比較器 Comparator

案例:模擬斗地主(洗牌,發(fā)牌,看牌)

實(shí)例:

案例:模擬斗地主升級(jí)版

要求對(duì)牌進(jìn)行排序

責(zé)任編輯:

標(biāo)簽:

相關(guān)推薦:

精彩放送:

新聞聚焦
Top