国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[JAVA數(shù)據(jù)結(jié)構(gòu)]HashMap

這篇具有很好參考價值的文章主要介紹了[JAVA數(shù)據(jù)結(jié)構(gòu)]HashMap。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1.HashMap

1.1Map的常用方法

1.2HashMap的使用案例


1.HashMap

基于哈希表的實現(xiàn)的Map接口。

Map底層結(jié)構(gòu) HashMap
底層結(jié)構(gòu) 哈希桶
插入/刪除/查找時間復(fù)雜度 O(1)
是否有序 無序
線程安全 不安全
插入/刪除/查找區(qū)別 通過哈希函數(shù)計算哈希地址
比較與覆寫 自定義類型需要覆寫equals和
hashCode方法

1.1Map的常用方法

方法 解釋
V get(Object key) 返回 key 對應(yīng)的 value
V getOrDefault(Object key, V defaultValue) 返回 key 對應(yīng)的 value,key 不存在,返回默認值
V put(K key, V value) 設(shè)置 key 對應(yīng)的 value
V remove(Object key) 刪除 key 對應(yīng)的映射關(guān)系
Set<K> keySet() 返回所有 key 的不重復(fù)集合
Collection<V> values() 返回所有 value 的可重復(fù)集合
Set<Map.Entry<K, V>> entrySet() 返回所有的 key-value 映射關(guān)系
boolean containsKey(Object key) 判斷是否包含 key
boolean containsValue(Object value) 判斷是否包含 value

注意:Map.Entry<>是Map內(nèi)部實現(xiàn)的用來存放key-value相應(yīng)鍵值對的內(nèi)部類?

? ? ? ? 其內(nèi)部有g(shù)etKey(),getValue與setValue()方法

1.2HashMap的使用案例

創(chuàng)建一個HashMap,及put的使用

import java.util.*;

public class Test {
    public static void Map(){
        Map<String,Integer> map = new HashMap<>();
        //創(chuàng)建一個HashMap key的類型為"String" value的類型為"Integer"

        map.put("a",1);
        map.put("b",2);
        map.put("c",3);
        map.put("d",100);
        map.put(null,null);
        map.put("d",4);//當(dāng)key存在時,則會更新value
        //向map中put入五個鍵值對
        //注意噢,在HashMap中的key和value都可以為null

        int size = map.size();
        System.out.println("size = " + size);
        //通過size()方法,得到map中鍵值對的數(shù)量.此時size == 5

        int retGet = map.get("a");
        System.out.println("retGet = " + retGet);
        //通過get()方法,得到對應(yīng)key的value值.此時retGet為1
        //retGet = map.get("z");//map中的key沒有"z",此條程序會報錯
        //注意!!! 當(dāng)使用get方法時,map中沒有對應(yīng)的key值時,程序會報錯

        int retGOD = map.getOrDefault("z",-1);
        System.out.println("retGOD = " + retGOD);
        //此處retGOD為-1
        //通過getOrDefault()方法,得到對應(yīng)的key的value值,如果key值不存在
        //則返回我們設(shè)置的默認值"-1".
        //與get()不同的是,查找的key如果不存在于map中,也不會進行報錯

        boolean retConK = map.containsKey("a");
        boolean retConV = map.containsValue(4);
        System.out.println("retConk = " + retConK);
        System.out.println("retConV = " + retConV);
        //通過containsKey()方法查找map中是否存在對應(yīng)的key值
        //containsValue()方法查找map中是否存在對應(yīng)的value,可以是一個或多個

        Set<String> set = map.keySet();
        for (String s:set) {
            System.out.print(s + " ");
        }
        System.out.println();
        //通過keySet()方法,返回map中所有的key值,并以set的形式返回

        int retRemove = map.remove("a");
        System.out.println("retRemover = " + retRemove);
        //通過remove()方法,根據(jù)key值刪除相應(yīng)的鍵值對,并返回刪除的value值

        int retReplace = map.replace("b",10);
        System.out.println("retReplace = " + retReplace);
        //通過replace()方法,更新key的value--好像直接put也一樣?

        Collection<Integer> collection = map.values();
//        for (int i:collection) {         此方法因為value中有一個null,直接遍歷會有一個空指針的報錯,int類型也不能與null比較
//            System.out.println(i + " "); 于是乎,有了以下使用迭代器的方式來遍歷
//        }
//        System.out.println();
        Iterator<Integer> iterator = collection.iterator();
        while (iterator.hasNext()){
            System.out.print(iterator.next() + " ");
        }
        System.out.println();
        //通過keySet()方法,返回map中所有的value值,以collection的形式返回

        Set<Map.Entry<String,Integer>> entrySet = map.entrySet();
        for (Map.Entry<String, Integer> s : map.entrySet()) {
            System.out.print(s.getKey() + "->" + s.getValue() + " ");
        }
        System.out.println();
        //通過entrySet()方法,得到key與value的對應(yīng)關(guān)系,并使用其getKey與getValue得到相應(yīng)的值

    }
    public static void main(String[] args) {
        Map();
    }
}

[JAVA數(shù)據(jù)結(jié)構(gòu)]HashMap,java,數(shù)據(jù)結(jié)構(gòu),開發(fā)語言

?文章來源地址http://www.zghlxwxcb.cn/news/detail-527033.html

?

到了這里,關(guān)于[JAVA數(shù)據(jù)結(jié)構(gòu)]HashMap的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java-數(shù)據(jù)結(jié)構(gòu)(二)-Map:HashMap、TreeMap、LinkedHashMap

    Java-數(shù)據(jù)結(jié)構(gòu)(二)-Map:HashMap、TreeMap、LinkedHashMap

    ????Map是Java中常用的數(shù)據(jù)結(jié)構(gòu),它提供了一種鍵值對的存儲方式,可以根據(jù)鍵來快速訪問值。在本篇文章中,我將學(xué)習(xí)Java中的Map數(shù)據(jù)結(jié)構(gòu) ????問題是最好的老師,我將從至少以下幾個方面闡述,什么是map、使用Map有什么好處、Map的底層原理、map中的key和value分別是

    2024年02月06日
    瀏覽(70)
  • java碳排放數(shù)據(jù)信息管理系統(tǒng)Myeclipse開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計算機網(wǎng)頁項目

    java碳排放數(shù)據(jù)信息管理系統(tǒng)Myeclipse開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計算機網(wǎng)頁項目

    一、源碼特點 ?? ?java Web碳排放數(shù)據(jù)信息管理系統(tǒng)是一套完善的java web信息管理系統(tǒng),對理解JSP java編程開發(fā)語言有幫助,系統(tǒng)具有完整的源代碼和數(shù)據(jù)庫,系統(tǒng)主要采用B/S模式開發(fā)。開發(fā)環(huán) 境為TOMCAT7.0,Myeclipse8.5開發(fā),數(shù)據(jù)庫為Mysql5.0,使用java語言開發(fā)。 java Web碳排放數(shù)據(jù)信

    2024年01月22日
    瀏覽(28)
  • java生態(tài)環(huán)境評價Myeclipse開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計算機網(wǎng)頁項目

    java生態(tài)環(huán)境評價Myeclipse開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計算機網(wǎng)頁項目

    一、源碼特點 ?? ?java 生態(tài)環(huán)境評價管理系統(tǒng)是一套完善的java web信息管理系統(tǒng),對理解JSP java編程開發(fā)語言有幫助,系統(tǒng)具有完整的源代碼和數(shù)據(jù)庫,系統(tǒng)主要采用B/S模式開發(fā)。開發(fā)環(huán)境為 TOMCAT7.0,Myeclipse8.5開發(fā),數(shù)據(jù)庫為Mysql5.0,使用java語言開發(fā)。 java web 生態(tài)環(huán)境評價系

    2024年02月19日
    瀏覽(19)
  • java排課管理系統(tǒng)Myeclipse開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計算機網(wǎng)頁項目

    java排課管理系統(tǒng)Myeclipse開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計算機網(wǎng)頁項目

    一、源碼特點 ?? ?java排課管理系統(tǒng)是一套完善的java web信息管理系統(tǒng),對理解JSP java編程開發(fā)語言有幫助,系統(tǒng)具有完整的源代碼和數(shù)據(jù)庫,系統(tǒng)主要采用B/S模式開發(fā)。開發(fā)環(huán)境為TOMCAT7.0,Myeclipse8.5開發(fā),數(shù)據(jù)庫為Mysql5.0,使用java語言開發(fā)。 java web 排課管理系統(tǒng)1 下載地址

    2024年02月19日
    瀏覽(23)
  • java流浪動物保護系統(tǒng)Myeclipse開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計算機網(wǎng)頁項目

    java流浪動物保護系統(tǒng)Myeclipse開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計算機網(wǎng)頁項目

    一、源碼特點 ?? ?java Web 流浪動物保護系統(tǒng)是一套完善的java web信息管理系統(tǒng),對理解JSP java編程開發(fā)語言有幫助,系統(tǒng)具有完整的源代碼和數(shù)據(jù)庫,系統(tǒng)主要采用B/S模式開發(fā)。開發(fā)環(huán)境為TOMCAT7.0,Myeclipse8.5開發(fā),數(shù)據(jù)庫為Mysql5.0,使用java語言開發(fā)。 二、功能介紹 前臺功能:

    2024年02月04日
    瀏覽(22)
  • 數(shù)據(jù)結(jié)構(gòu)與算法細節(jié)篇之最短路徑問題:Dijkstra和Floyd算法詳細描述,java語言實現(xiàn)。

    數(shù)據(jù)結(jié)構(gòu)與算法細節(jié)篇之最短路徑問題:Dijkstra和Floyd算法詳細描述,java語言實現(xiàn)。

    最短路徑的算法有兩個, Dijkstra算法 和 Floyd算法 。 Dijkstra算法 解決的是 單源 最短路徑問題 。 Floyd算法解決的是 多源 最短路徑問題,并且可以處理負權(quán)圖 。 今天要講的就是Dijkstra算法。 加: feng--Insist (大寫的i),進java交流群討論互聯(lián)網(wǎng)+技術(shù)??伤饕狿PT等資料。 其他資料

    2024年02月11日
    瀏覽(94)
  • 《HashMap的數(shù)據(jù)結(jié)構(gòu)》

    《HashMap的數(shù)據(jù)結(jié)構(gòu)》

    目錄 HashMap概述: ?數(shù)據(jù)結(jié)構(gòu)的組成: 一個鍵值對是如何存入該結(jié)構(gòu)中: HashMap中鏈表和紅黑樹的用途和轉(zhuǎn)換方式?: ? ???????? ? ? ? ? ?HashMap是基于哈希表的Map接口實現(xiàn)的,它存儲的內(nèi)容是鍵值對key,value映射。 該類無序。 ? ? ? ? 在JDK1.7及以前,HashMap的數(shù)據(jù)結(jié)構(gòu)是有

    2024年02月07日
    瀏覽(24)
  • HashMap的數(shù)據(jù)結(jié)構(gòu)

    HashMap基于哈希表的Map接口實現(xiàn),是以key-value存儲形式存在,即主要用來存放鍵值對。HashMap的實現(xiàn)不是同步的,這意味著它不是線程安全的。它的key、value都可以為null。此外,HashMap中的映射不是有序的。 JDK1.8之前的HashMap由數(shù)組+鏈表組成的,數(shù)組是HashMap的主體,鏈表則是主要

    2024年02月07日
    瀏覽(32)
  • java 體育明星管理系統(tǒng)Myeclipse開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計算機網(wǎng)頁項目

    java 體育明星管理系統(tǒng)Myeclipse開發(fā)mysql數(shù)據(jù)庫web結(jié)構(gòu)java編程計算機網(wǎng)頁項目

    一、源碼特點 ?? ?java Web 體育明星管理系統(tǒng)是一套完善的java web信息管理系統(tǒng),對理解JSP java編程開發(fā)語言有幫助,系統(tǒng)具有完整的源代碼和數(shù)據(jù)庫,系統(tǒng)主要采用B/S模式開發(fā)。開發(fā)環(huán)境為 TOMCAT7.0,Myeclipse8.5開發(fā),數(shù)據(jù)庫為Mysql5.0,使用java語言開發(fā)。 java Web體育明星管理系統(tǒng)

    2024年02月02日
    瀏覽(26)
  • 數(shù)據(jù)結(jié)構(gòu)---HashMap和HashSet

    數(shù)據(jù)結(jié)構(gòu)---HashMap和HashSet

    HashMap和HashSet都是存儲在哈希桶之中,我們可以先了解一些哈希桶是什么。 像這樣,一個數(shù)組數(shù)組的每個節(jié)點帶著一個鏈表,數(shù)據(jù)就存放在鏈表結(jié)點當(dāng)中。哈希桶插入/刪除/查找節(jié)點的時間復(fù)雜度是O(1) map代表存入一個key值,一個val值。map可多次存儲,當(dāng)?shù)诙尾迦霑r,會更新

    2024年02月06日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包