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

Java Map集合用法詳解

 更新時間:2021年10月22日 15:06:15   作者:做哈白日夢  
Map用于保存具有映射關(guān)系的數(shù)據(jù),Map集合里保存著兩組值,一組用于保存Map的ley,另一組保存著Map的value;Map集合和查字典類似,通過key找到對應(yīng)的value,通過頁數(shù)找到對應(yīng)的信息。用學(xué)生類來說,key相當于學(xué)號,value對應(yīng)name,age,sex等信息。用這種對應(yīng)關(guān)系方便查找

Map集合的概述

概述:interface Map<K,V> 其中K是鍵的類型,鍵是唯一的,不重復(fù)。V是值的類型,是可以重復(fù)。且每個鍵可以映射最多一個值。注意的是如果存在兩個相同的鍵時,則會將現(xiàn)在的值替換之前的值。

創(chuàng)建方式:以多態(tài)的形式創(chuàng)建對象。

特點:

  • 鍵值對映射關(guān)系
  • 一個鍵對應(yīng)一個值
  • 鍵不能重復(fù),值可以重復(fù)
  • 元素存取無序

常用方法:

在這里插入圖片描述

(put(K,V) 將指定的值與該映射中的指定j健相關(guān)聯(lián),用于添加,返回類型V);

其中獲取功能:

在這里插入圖片描述

其中:KeySet()返回為Set類型,所以鍵是唯一的,不重復(fù)。

遍歷方式:

第一種:

在這里插入圖片描述

通過獲取鍵的集合,再用get方法獲取到對應(yīng)的值。

第二種:

在這里插入圖片描述

Map的實現(xiàn)類:

HashMap

存儲方式:

采用了 Key-value鍵值對映射的方式進行存儲。

底層結(jié)構(gòu):采用哈希表的存儲結(jié)構(gòu)所以里面的數(shù)據(jù)是無序但是唯一的。(實現(xiàn)唯一的方式就是重寫 Hashcode和equals方法)

TreeMap

底層結(jié)構(gòu):采用的是二叉樹的存儲方式里面的數(shù)據(jù)是唯一而且有序的而且一般是按升序的方式排列 (要實現(xiàn)comparable接口并且重寫compareTo的方法用來實現(xiàn)它的排序)。

集合嵌套(補充知識):

類似這種形式為:

ArrayList<HashMap<String, String>> array = new ArrayList<HashMap<String, String>>();

為集合嵌套,主要注意的就是:在集合中嵌套集合的類型和方法使用。

高頻面試題

1、Map

HashMap: JDK1.8之前HashMap由數(shù)組+鏈表組成的,數(shù)組是HashMap的主體,鏈表則是主要為了解決哈希沖突而存在的(“拉鏈法”解決沖突).JDK1.8以后在解決哈希沖突時有了較大的變化,當鏈表長度大于閾值(默認為8)時,將鏈表轉(zhuǎn)化為紅黑樹,以減少搜索時間。

LinkedHashMap: LinkedHashMap 繼承自 HashMap,所以它的底層仍然是基于拉鏈式散列結(jié)構(gòu)即由數(shù)組和鏈表或紅黑樹組成。另外,LinkedHashMap 在上面結(jié)構(gòu)的基礎(chǔ)上,增加了一條雙向鏈表,使得上面的結(jié)構(gòu)可以保持鍵值對的插入順序。同時通過對鏈表進行相應(yīng)的操作,實現(xiàn)了訪問順序相關(guān)邏輯。詳細可以查看:《LinkedHashMap 源碼詳細分析(JDK1.8)》。

HashTable: 數(shù)組+鏈表組成的,數(shù)組是 HashMap 的主體,鏈表則是主要為了解決哈希沖突而存在的。

TreeMap: 紅黑樹(自平衡的排序二叉樹)。

2、HashMap的底層實現(xiàn)

JDK1.8 之前 HashMap 由 數(shù)組+鏈表 組成的(“鏈表散列” 即數(shù)組和鏈表的結(jié)合體)。

JDK1.8之后在解決哈希沖突時有了較大的變化,當鏈表長度大于閾值(默認為8)時,將鏈表轉(zhuǎn)化為紅黑樹,以減少搜索時間,所以有數(shù)組+鏈表+紅黑樹組成。

到此這篇關(guān)于Java Map集合用法詳解的文章就介紹到這了,更多相關(guān)Java Map集合內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • idea如何忽略.iml文件和.idea目錄

    idea如何忽略.iml文件和.idea目錄

    這篇文章主要介紹了idea如何忽略.iml文件和.idea目錄問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java圖形化界面實現(xiàn)登錄窗口

    java圖形化界面實現(xiàn)登錄窗口

    這篇文章主要為大家詳細介紹了java圖形化界面實現(xiàn)登錄窗口,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Java function函數(shù)式接口的使用方法與實例

    Java function函數(shù)式接口的使用方法與實例

    這篇文章主要介紹了Java function函數(shù)式接口的使用方法與實例,函數(shù)式接口如一支未完成的詩篇,用Lambda表達式作韻腳,將代碼的機械美感與藝術(shù)的抽象融為一體,悄然重構(gòu)了開發(fā)者對代碼之美的認知,需要的朋友可以參考下
    2025-02-02
  • Java虛擬機內(nèi)存區(qū)域劃分詳解

    Java虛擬機內(nèi)存區(qū)域劃分詳解

    這篇文章主要介紹了Java虛擬機內(nèi)存區(qū)域劃分,本文邏輯清晰,可以幫助我們更好的掌握虛擬機,對我們學(xué)習(xí)java來說是一種幫助,需要的朋友可以參考下
    2021-04-04
  • Java 在Word中創(chuàng)建郵件合并模板并合并文本和圖片的操作方法

    Java 在Word中創(chuàng)建郵件合并模板并合并文本和圖片的操作方法

    通過Java程序展示如何來實現(xiàn)創(chuàng)建模板,并通過郵件合并功能來合并文本數(shù)據(jù)和圖片數(shù)據(jù)的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-07-07
  • maven <repositories>標簽和<pluginRepositories>標簽的使用

    maven <repositories>標簽和<pluginRepositories>標簽的使用

    這篇文章主要介紹了maven <repositories>標簽和<pluginRepositories>標簽的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 大模型chat/completions和completions區(qū)別解析

    大模型chat/completions和completions區(qū)別解析

    OpenAI的completions和chat/completions是兩個不同的端點,completions用于單次文本補全,而chat/completions用于多輪對話生成,選擇哪個端點取決于你的具體需求,本文介紹大模型chat/completions和completions區(qū)別,感興趣的朋友一起看看吧
    2025-03-03
  • IDEA設(shè)置Maven自動編譯model的實現(xiàn)方法

    IDEA設(shè)置Maven自動編譯model的實現(xiàn)方法

    本文主要介紹了IDEA設(shè)置Maven自動編譯model的實現(xiàn)方法, maven結(jié)構(gòu)的項目,我們在每次修改代碼后都會需要手動編譯,本文就可以解決這個問題,感興趣的可以了解一下
    2023-08-08
  • spring.mvc.servlet.load-on-startup屬性方法源碼解讀

    spring.mvc.servlet.load-on-startup屬性方法源碼解讀

    這篇文章主要介紹了spring.mvc.servlet.load-on-startup的屬性方法源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Java通過Lambda函數(shù)的方式獲取屬性名稱

    Java通過Lambda函數(shù)的方式獲取屬性名稱

    這篇文章主要介紹了通過Lambda函數(shù)的方式獲取屬性名稱,實現(xiàn)步驟是通過定義一個函數(shù)式接口, 用來接收lambda方法引用,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-10-10

最新評論

慈利县| 饶阳县| 株洲市| 平乡县| 湘潭县| 海晏县| 河津市| 静安区| 庆元县| 凤凰县| 茂名市| 岑溪市| 水富县| 乐山市| 梓潼县| 襄樊市| 浮梁县| 蛟河市| 闻喜县| 安国市| 申扎县| 保靖县| 白山市| 大同市| 呈贡县| 广南县| 新密市| 伊金霍洛旗| 商水县| 云霄县| 西盟| 璧山县| 剑阁县| 敦化市| 上栗县| 昌平区| 六盘水市| 商丘市| 吉木萨尔县| 金秀| 边坝县|