最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Map集合中的Entry對象用法

 更新時間:2020年09月25日 09:33:52   作者:宇智波愛編程  
這篇文章主要介紹了Java中Map集合中的Entry對象用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Entry: 鍵值對 對象。

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

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

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

Map集合遍歷鍵值對的方式:

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

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

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

實現(xiàn)步驟:

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

2,迭代Set集合

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

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

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

Map集合

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

注:哈希表就是稀疏數(shù)組,因為他雖然是數(shù)組,但并不是每個索引都用上了,即位置沒有存滿,浪費了許多空間。

鍵值對

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

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

因為,我們拿鍵的哈希碼來計算我們所要存儲的索引,查找也一樣通過鍵來查找。鍵也是對象,每個對象都有一個HasCode。且HasCode主要是用來計算數(shù)組的索引的。而且用鍵值對查找,其查找速度非常快。

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

將對象放進集合

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

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'));

將集合中的對象取出

通過鍵所封裝的對象的索引位置,來取出Entry對象。但是,最終返回的是值,而不是Entry對象。

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繼承下來的,但是不見子類就合適,因為Object繼承下來的哈希碼是用地址算的,所以值特別大。如果要往哈希表里面放,那么浪費空間就比較大,所以子類一般會重寫。

通過鍵取Entry對象

返回Entry對象的方法只有一個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,因為Set是個無序集,
  //且不能重復(fù),但是,哈希表里的值可以重復(fù)。
  //所以,應(yīng)該用Collection來引用,不敢用Set。
  //values返回的是Collection,
  //且不能返回Set,因為這樣會將值給去掉,
  //且值有可能是重復(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對象用法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實現(xiàn)HTTPS連接的示例代碼

    Java實現(xiàn)HTTPS連接的示例代碼

    現(xiàn)在的網(wǎng)絡(luò)世界,安全性是大家都非常關(guān)注的問題,特別是對于咱們這些程序員來說,所以,理解并實現(xiàn)HTTPS連接,對于保護咱們的數(shù)據(jù)安全是極其重要的,下面我們就來學習一下在Java中如何實現(xiàn)HTTPS連接吧
    2023-12-12
  • SpringBoot?+?layui?框架實現(xiàn)一周免登陸功能示例詳解

    SpringBoot?+?layui?框架實現(xiàn)一周免登陸功能示例詳解

    這篇文章主要介紹了SpringBoot+layui框架實現(xiàn)一周免登陸功能,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • 聊聊Arrays.deepToString()和Arrays.toString()的區(qū)別

    聊聊Arrays.deepToString()和Arrays.toString()的區(qū)別

    這篇文章主要介紹了聊聊Arrays.deepToString()和Arrays.toString()的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java Spring5學習之JdbcTemplate詳解

    Java Spring5學習之JdbcTemplate詳解

    這篇文章主要介紹了Java Spring5學習之JdbcTemplate詳解,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Java中的悲觀鎖與樂觀鎖是什么

    Java中的悲觀鎖與樂觀鎖是什么

    這篇文章主要介紹了Java中的悲觀鎖與樂觀鎖是什么,幫助大家更好的理解和學習Java鎖的相關(guān)知識,感興趣的朋友可以了解下
    2020-09-09
  • SpringBoot定制JSON響應(yīng)數(shù)據(jù)的實現(xiàn)

    SpringBoot定制JSON響應(yīng)數(shù)據(jù)的實現(xiàn)

    本文主要介紹了SpringBoot定制JSON響應(yīng)數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-02-02
  • 使用Java代碼獲取服務(wù)器性能信息及局域網(wǎng)內(nèi)主機名

    使用Java代碼獲取服務(wù)器性能信息及局域網(wǎng)內(nèi)主機名

    這篇文章主要介紹了使用Java代碼獲取服務(wù)器性能信息及局域網(wǎng)內(nèi)主機名的方法,方便對服務(wù)器的遠程管理和團隊協(xié)作時用到,而且文中的方法無需調(diào)用jni,需要的朋友可以參考下
    2015-11-11
  • java.lang.Runtime.exec的左膀右臂:流輸入和流讀取詳解

    java.lang.Runtime.exec的左膀右臂:流輸入和流讀取詳解

    這篇文章主要介紹了java.lang.Runtime.exec的左膀右臂:流輸入和流讀取詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java基于循環(huán)遞歸回溯實現(xiàn)八皇后問題算法示例

    Java基于循環(huán)遞歸回溯實現(xiàn)八皇后問題算法示例

    這篇文章主要介紹了Java基于循環(huán)遞歸回溯實現(xiàn)八皇后問題算法,結(jié)合具體實例形式分析了java的遍歷、遞歸、回溯等算法實現(xiàn)八皇后問題的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • java web實現(xiàn)簡易收費站

    java web實現(xiàn)簡易收費站

    這篇文章主要為大家詳細介紹了java web實現(xiàn)簡易收費站,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一
    2020-11-11

最新評論

永州市| 崇信县| 刚察县| 哈尔滨市| 凌源市| 建始县| 奎屯市| 长宁区| 瑞安市| 崇义县| 溆浦县| 清镇市| 土默特左旗| 福建省| 宜丰县| 肥西县| 左权县| 台南县| 梁河县| 宜丰县| 满洲里市| 保亭| 仲巴县| 林州市| 和龙市| 饶平县| 山东省| 高阳县| 定州市| 枣庄市| 囊谦县| 黄梅县| 武威市| 安庆市| 三原县| 怀仁县| 无极县| 湖北省| 乌什县| 永济市| 饶河县|