最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

150天打卡Day22_集合(下篇)

2021-05-18 11:30 作者:關(guān)阿姨的Java日記  | 我要投稿

回顧

Collection接口定義了集合所共有的方法

  • add(E e)向集合中添加元素

  • addAll(E e)把集合中添加的元素再次全部添加

  • remove(Object o)將集合中的元素移除(一次只能移除一個(gè))

  • removeAll(Object o)將移除集合中的所有元素

  • isEmploy()返回boolean值,判斷集合中的元素是否為空

  • size()返回int類型,獲取當(dāng)前集合中的元素的個(gè)數(shù)

  • iterator()遍歷集合中的元素

    • hasNext()判斷下一個(gè)元素之后還有沒(méi)有值

    • next()獲取下一個(gè)集合元素

  • contains()用于判斷指定元素是否被集合包含,包含則為true

泛型

泛型,又稱為是參數(shù)化類型。是JDK1.5之后推出的一個(gè)特性,泛型可以表示屬性的類型,方法參數(shù)的類型以及返回值類型。

?

package sesson13; /* * 泛型,又稱為是參數(shù)化類型,是JDK1.5之后推出的一個(gè)特性 * 泛型可以表示屬性的類型,方法參數(shù)的類型以及返回值類型 */ public class Num <T>{ private T ?numA; private T numB; public Num(T numA, T numB) { super(); this.numA = numA; this.numB = numB; } }

測(cè)試:

public class NumTest { public static void main(String[] args) { Num<Double> n1 = new Num<Double>(1.1, 1.2); } }

泛型的值全都都是引用類型,是基本類型的包裝類

泛型是編譯器認(rèn)可的,泛型的原型就是Object

泛型在集合中的應(yīng)用

集合中的元素可以是任意類型的,但是我們可以使用泛型強(qiáng)制要求集合里面存什么元素。

所以呢泛型在集合中的應(yīng)用就是用來(lái)約束集合中的元素。

List集合

  • List接口繼承了Collection接口,因此包含了Collection接口中的所有方法

  • List集合中的元素允許重復(fù),并且都是有序的。各元素的順序就是添加元素的順序,類似于Java數(shù)組,用于可以通過(guò)索引來(lái)訪問(wèn)集合中的元素。所以也通常是把ArrayList叫做可變數(shù)組。

  • List集合包括List接口以及List接口的所有實(shí)現(xiàn)類最常用的是ArrayList。

?

?

?

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

  • ArrayList類實(shí)現(xiàn)了可變的數(shù)組,允許保存所有元素,包括null。有具體的下標(biāo),適合查,不適合增和刪

  • LinkedList類采用鏈表結(jié)構(gòu)保存對(duì)象,不適合查,更適合增和刪。

  • List接口還定義了兩個(gè)非常重要的方法,作為L(zhǎng)ist的實(shí)現(xiàn)類同樣也具有這些方法。需要實(shí)現(xiàn)

    • get(int index) :獲得指定索引位置的元素

    • set(int index,Object obj):將集合中指定索引位置的元素修改為指定的元素

  • get(),set()方法測(cè)試

測(cè)試

  • 重載后的add()remove()方法測(cè)試

List集合重載了一對(duì)Collection集合中的add,remove方法,支持使用下標(biāo)操作元素

  • subList(int index,int end)

subList(int index,int end)方法用于獲取子集,前切一刀,后切一刀,取中間

  • 集合與數(shù)組的相互轉(zhuǎn)換

    • Collection提供了一個(gè)toArray方法,可以將當(dāng)前集合轉(zhuǎn)換為一個(gè)數(shù)組

    • 數(shù)組轉(zhuǎn)為集合使用數(shù)組的工具類asList(),只能轉(zhuǎn)為L(zhǎng)ist集合

?

總結(jié):

  • get()獲取指定下標(biāo)對(duì)應(yīng)的元素

  • set()將指定的元素設(shè)置到指定位置上,返回值為原位置對(duì)應(yīng)的元素,所以set()也是替換元素操作

  • 重載后的add(int index,E e)向指定位置插入指定元素,index:指集合中指定元素的位置

  • 重載后的remove()刪除指定位置處的元素

  • subList(int index,int end)用于獲取子集,前切一刀,后切一刀。取中間,對(duì)子集的操作其實(shí)就是對(duì)元集合的操作

  • toArray()把當(dāng)前集合轉(zhuǎn)為一個(gè)數(shù)組

  • asList()把數(shù)組轉(zhuǎn)為一個(gè)集合

Set

代碼

List集合和Set集合的區(qū)別

  • Set集合中的元素是無(wú)序的

    • list中的元素是有序的

  • Set集合中的元素不允許重復(fù)

    • list中的元素允許重復(fù)

  • 線程安全問(wèn)題以后說(shuō)

Map集合

Map集合沒(méi)有繼承Collection接口,包括Map接口以及Map接口的所有實(shí)現(xiàn)類。HashMap和TreeMap,,是key-value以鍵值對(duì)的形式存儲(chǔ)。Map中不能包含相同的key,每個(gè)key只能映射一個(gè)value

  • Map集合中常用方法

  • Put(k k V v) ? 將給定的一組鍵值存儲(chǔ)在Map集合中

  • get(Object k) ?根據(jù)給定的Key獲取對(duì)應(yīng)的Value

  • remove( K,k)根據(jù)給定的Key 刪除集合中Key對(duì)應(yīng)的Value



  • 遍歷Map集合

  • 遍歷所有的Key ? ?keySet()

  • 遍歷所有的value(相對(duì)不常用) values()

  • 遍歷每一組鍵值對(duì) ? entrySet()

  • Map接口的兩個(gè)子實(shí)現(xiàn)

    • HashMap:可以存null值,線程不安全,異步。

    • HashTable:不可以存null,線程安全,同步。

  • Map集合的應(yīng)用場(chǎng)景廣泛

原因:能確定key的值,就一定能精確快速的獲取key對(duì)應(yīng)的value。

很多的框架中的數(shù)據(jù)都是用Map存儲(chǔ)的

Spring,Spring mvc, Struts2, tomcat, redis,mongodb,這些框架在內(nèi)存中的數(shù)據(jù)存儲(chǔ)都是用Map

總結(jié):

  • Map集合:用鍵值對(duì)數(shù)據(jù)組成的集合

  • Put(k k V v) 往集合中添加元素

  • get(Object k)根據(jù)給定的Key值獲取value

  • remove( K,k)根據(jù)給定的Key刪除對(duì)應(yīng)的鍵值對(duì)

  • 遍歷所有的Key ?

    • keySet() Map集合中的Key是一個(gè)Set集合,不允許重復(fù)

    • 遍歷所有的value(相對(duì)不常用) values()

    • 遍歷每一組鍵值對(duì) ? entrySet()

?


150天打卡Day22_集合(下篇)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
彩票| 清远市| 久治县| 阿克苏市| 柏乡县| 壶关县| 鸡泽县| 财经| 新泰市| 简阳市| 登封市| 祥云县| 佛山市| 大足县| 枣阳市| 贵港市| 崇左市| 弥勒县| 景德镇市| 阿坝| 米脂县| 巨野县| 大足县| 杂多县| 侯马市| 全州县| 和平县| 龙南县| 高邮市| 祁东县| 庆城县| 保山市| 比如县| 金寨县| 巴彦淖尔市| 玉田县| 济阳县| SHOW| 宁波市| 定西市| 从化市|