亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java中Map集合中的Entry對(duì)象用法

瀏覽:7日期:2022-08-23 18:55:23

Entry: 鍵值對(duì) 對(duì)象。

在Map類設(shè)計(jì)是,提供了一個(gè)嵌套接口(static修飾的接口):Entry。Entry將鍵值對(duì)的對(duì)應(yīng)關(guān)系封裝成了對(duì)象,即鍵值對(duì)對(duì)象,這樣我們?cè)诒闅vMap集合時(shí),就可以從每一個(gè)鍵值對(duì)(Entry)對(duì)象中獲取對(duì)應(yīng)的鍵與對(duì)應(yīng)的值。

Entry為什么是靜態(tài)的?

Entry是Map接口中提供的一個(gè)靜態(tài)內(nèi)部嵌套接口,修飾為靜態(tài)可以通過(guò)類名調(diào)用。

Map集合遍歷鍵值對(duì)的方式:

Set<Map.Entry<K,V>> entrySet();

//返回此映射中包含的映射關(guān)系的Set視圖

該方法返回值是Set集合,里面裝的是Entry接口類型,即將映射關(guān)系裝入Set集合。

實(shí)現(xiàn)步驟:

1,調(diào)用Map集合中的entrySet()方法,將集合中的映射關(guān)系對(duì)象存儲(chǔ)到Set集合中

2,迭代Set集合

3,獲取Set集合的元素,是映射關(guān)系的對(duì)象

4,通過(guò)映射關(guān)系對(duì)象的方法,getKey()和getValue(),獲取鍵值對(duì)

補(bǔ)充知識(shí):【JAVA】Map集合(映射集合)、鍵值對(duì)的概念&集合對(duì)象的取和放

Map集合

Map集合的作用就是為了快速查找,他里面的集合我們就可以理解為哈希表,且哈希表存東西最好使用鍵和值。這里要注意的是,Map集合和Collection集合是并列的關(guān)系,不存在繼承關(guān)系。

注:哈希表就是稀疏數(shù)組,因?yàn)樗m然是數(shù)組,但并不是每個(gè)索引都用上了,即位置沒(méi)有存滿,浪費(fèi)了許多空間。

鍵值對(duì)

Map存儲(chǔ)時(shí)一般都需要兩個(gè)東西,我們把哈希表里的每個(gè)東西叫做Entry對(duì)象,另外表外有一個(gè)Entry接口。這個(gè)接口里定義了兩個(gè)方法——key(鍵)和value(值)。

為什么是分為鍵和值兩部分呢?

因?yàn)椋覀兡面I的哈希碼來(lái)計(jì)算我們所要存儲(chǔ)的索引,查找也一樣通過(guò)鍵來(lái)查找。鍵也是對(duì)象,每個(gè)對(duì)象都有一個(gè)HasCode。且HasCode主要是用來(lái)計(jì)算數(shù)組的索引的。而且用鍵值對(duì)查找,其查找速度非常快。

但是,這里要注意的是,有的時(shí)候,我們拿值去保存哈希碼的話,可能不是太好。我們希望去找特定的數(shù)據(jù)類型,專門拿某種類型來(lái)計(jì)算哈希碼。

將對(duì)象放進(jìn)集合

集合先將鍵和值封裝成Entry,然后根據(jù)鍵算出哈希碼的索引,然后將計(jì)算好的Entry對(duì)象放到計(jì)算出來(lái)的那個(gè)索引的位置上。

Map m = new HashMap();m.put('abc', new Student(2000, '孫悟空', ’m’));m.put('bcd', new Student(2001, '牛魔王',’m’));m.put('cde', new Student(1999, '紫霞仙子', ’f’));

將集合中的對(duì)象取出

通過(guò)鍵所封裝的對(duì)象的索引位置,來(lái)取出Entry對(duì)象。但是,最終返回的是值,而不是Entry對(duì)象。

Map m = new HashMap();m.put('abc', new Student(2000, '孫悟空', ’m’));m.put('bcd', new Student(2001, '牛魔王',’m’));m.put('cde', new Student(1999, '紫霞仙子', ’f’));System.out.println(m.get('abc'));

哈希碼

這里的哈希碼是從Object繼承下來(lái)的,但是不見(jiàn)子類就合適,因?yàn)镺bject繼承下來(lái)的哈希碼是用地址算的,所以值特別大。如果要往哈希表里面放,那么浪費(fèi)空間就比較大,所以子類一般會(huì)重寫。

通過(guò)鍵取Entry對(duì)象

返回Entry對(duì)象的方法只有一個(gè)entrySet方法,而entrySet返回的一定是Set。即它將Entry封裝成了Set集合,我們這里返回的是Entry接口的集合。

System.out.println(m.get('abc')); Set s = m.entrySet(); //迭代Set Iterator iter = s.iterator(); //判斷 while (iter.hasNext()) { Map.Entry entry=(Map.Entry)iter.next(); System.out.println(entry.getKey()+':'+entry.getValue()); }

遍歷所有的值

//這里不能用Set,因?yàn)镾et是個(gè)無(wú)序集, //且不能重復(fù),但是,哈希表里的值可以重復(fù)。 //所以,應(yīng)該用Collection來(lái)引用,不敢用Set。 //values返回的是Collection, //且不能返回Set,因?yàn)檫@樣會(huì)將值給去掉, //且值有可能是重復(fù)的。 //鍵也不能重復(fù),鍵也返回的是Set。 Collection c=m.values(); Iterator it=c.iterator(); while(it.hasNext()){ System.out.println(it.next()); }

拿到所有的鍵

/** * 拿到所有的鍵 */ Set ss=m.keySet(); Iterator iter1=ss.iterator(); while(iter1.hasNext()){ System.out.println(iter1.next()); }

以上這篇Java中Map集合中的Entry對(duì)象用法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 欧美极品在线视频 | 亚洲精品一区二区久久这里 | 亚洲欧美综合久久 | 成人欧美一区二区三区在线观看 | 欧美激情久久久久久久大片 | 国产大臿蕉香蕉大视频 | 亚洲国产精品免费观看 | 最新在线步兵区 | 国产第一福利影院 | 一本综合久久国产二区 | 美女黄页黄频 | 夜间福利在线观看 | 久青草免费视频手机在线观看 | 女人张开腿让男人捅的视频 | 国产男女视频 | www.亚色| 色屁屁一区二区三区视频国产 | 日p免费视频 | 国产普通话一二三道 | 国产农村一二三区 | 亚洲国产福利精品一区二区 | 欧美一级片在线观看 | 国产欧美专区在线观看 | 欧美特黄一区二区三区 | 国产成人精品福利网站在线观看 | 国产精品视频久久久 | 免费观看一级一片 | 久久久久国产精品免费网站 | 精品国产香蕉在线播出 | 婷婷色九月综合激情丁香 | 成人久久18免费网站入口 | 自偷自偷自亚洲永久 | 亚洲综合色一区二区三区另类 | 亚洲视频一区在线 | 欧美黄色网络 | 黄色资源网址 | 男人v天堂 | 99久久一区二区精品 | 久久综合婷婷香五月 | 国产成人免费福利网站 | 亚洲欧美二区三区久本道 |