計算機中的Map接口

2020-12-24 老楊分享

上集說到Set,List,現在輪到Map。Map也是一種容器。

談到容器,我們不要認為容器只有一種,我們把容器當作一個概念。就好比我們在生活中想到裝東西的地方,我們可以想到缸,桶,盤,一切能裝東西的容器。

在計算機中想到集合和容器,我們應該想到List,Set,Queue隊列,Map這幾個集合容器。而我們在其中這幾個當中選取適合裝我們所需的數據。舉個生活的小李子,提水,你想到的是什麼?你第一反應想到的應該是桶這一類的東西,我覺得你不會想到用缸這一龐然大物。以現實生活中的例子反應到計算機中,就通俗易懂了!

Map是一種容器,其中的元素以key-value(鍵值對)的形式存儲,這個key-value鍵值對在Map接口中稱Entry<k,v>實體。

Map容器以key-value鍵值對形式存儲數據,一個鍵值對作為一個Entry存在,這種數據結構成為映射,一般而言,都是通過key-value去存儲或獲取value,可不能重複key已知;Map有多種實現,以哈希表(hashtable)作為底層數據結構實現。叫做HashMap,因此HashMap的實現原理即哈希表數據結構的實現原理。

Map常用方法

Map也是和List,Set一樣有增刪改查這幾個操作。

Map的增加操作方法有以下幾種。

put(key,value)和putAll()。

例子:

Map<String,String> map=new HashMap<String,String>();

使用put方法增加操作。

map.put("B", "banana");

map.put("A", "apple");

map.put("C", "casey");

System.out.println(map);

輸出結果為:{A=apple, B=banana, C=casey}。

觀察上面的代碼,基本操作都是和List,Set差不多的。只是存儲的結果不一樣而已。

下面來看一看刪除操作這幾個方法:clear和remove(key)。

map.remove("A");

最後的結果是刪除了A。列印顯示:{B=banana, C=casey}。

查詢是我們用的比較多一個,不管是什麼都會涉及到查詢操作,是驢是馬總得拉出來溜溜吧。

查詢是否有數據的方法比較多:get(key),containsKey,containsValue,isEmpty/size這幾個方法。

System.out.println(map.get("B"));

System.out.println(map.containsKey("B"));

結果為:banana。true。

Map是通過key-value鍵值對存儲map的。

Map本身是無序的,但我們可以通過簡單的數字,字母作為key,讓map有序。在開發過程中map有序使用情況較少。

HashMap

HashMap中的key底層數據結構是HashSet。

HashMap存儲結構是哈希表,key是無序的,查詢效率也是挺高的,添加、刪除效率也是很高。

HashMap 工作原理當向 HashMap 中通過 key 添加元素時,首先計算 key 的 hashcode,y=k(x)散列位置,如果該位置沒有元素,hashmap 執行添加操作;如果該位置有元素,和該鏈上的元素比較,如果相等,執行 hashmap 的更新操作,如果不相等,執行 hashmap 添加操作。

LinkedHashMap是Map的哈希表和連結列表實現,它繼承與HashMap、底層使用哈希表與雙向鍊表來保存所有元素。其基本操作與父類HashMap相似,它通過重寫父類相關的方法,來實現自己的連結列表特性。

01TreeMap

TreeMap是一個有序的key-value集合,通過紅黑樹實現。

TreeMap是key唯一性的。查詢、添加、刪除都屬於中等,一般!

實現參考TreeSet。

相關焦點

  • 一文讀懂計算機的常見接口主要作用
    家用或辦公用的計算機一般都有很多接口,相信很多朋友對一些接口比較熟悉,如USB接口是最為常見的,也有一些外接顯示器的HDMI接口,可能你不了解它的名稱,但應該見過這樣或那樣的接口形態。當然,計算機有很多種接口,外形不一樣,功能不一。今天小編來給你全面講解關於計算機接口。
  • Java中的Set、List、Map的用法與區別
    集合中的對象不按特定的方式排序,並且沒有重複對象。Set接口主要實現了兩個實現類:HashSet:HashSet類按照哈希算法來存取集合中的對象,存取速度比較快TreeSet:TreeSet類實現了SortedSet接口,能夠對集合中的對象進行排序。
  • 【生活現場】從打牌到map-reduce工作原理解析
    (注意,如果有兩幅完整的牌,那麼小趙手中的黑桃A一定不少於2張,因為其他人手中已經不可能有黑桃A了,圖中的數據只是演示。)【hadoop中的map-reduce】小史:我明白了,hadoop其實把map-reduce的流程已經固定下來並且實現了,只留給我們自定義map和自定義reduce的接口,而這兩部分恰好是和業務強相關的。
  • 計算機有容乃大
    Collection接口Collection 接口是集合框架的頂層接口,Collection 表示集合,其中的對象稱為集合的元素。元素可以有序、也可以無序;元素還可以重複、也可不重複。Collection 只能存儲引用數據類型,不能存儲基本數據類型。
  • 自考計算機應用技術知識點:可編程接口晶片
    可編程接口晶片及其應用(一)學習目的與要求本章學習的主要內容是可編程序並行接口晶片8255A、可編程定時器/計數器8253-5和通用同步異步接收發送器8251A的組成、功能和應用。模/數轉換器ADC0809的工作原理和應用。
  • GO編程模式系列(一):切片,接口,時間和性能
    本文是全系列中第1 / 9篇:Go編程模式Go 編程模式:Functional Options目錄Slice深度比較接口編程接口完整性檢查時間性能提示參考文檔Slice首先,我們先來討論一下Slice,中文翻譯叫「切片」,這個東西在Go語言中不是數組,而是一個結構體,其定義如下:
  • 推薦十大錄音接口—人氣排行榜【2019年最新版】
    錄音接口屬於專業錄音器材的一種,許多廠商如 Focusrite、Roland 和 Steinberg 等都推出了不同價格帶、音質不盡相同的錄音接口,加上商品規格使用了很多艱深的專業術語,總是讓許多初入門的使用者不知如何選起。今天我們將從市面上的錄音接口中挑選幾款廣泛受到使用者青睞的商品,並以10大人氣排行榜的形式進行推薦。
  • 集成學習 | 計算機電影種草指南
    此後,Neo和小夥伴們走上了對抗機器、探索「現實」的漫漫長路……說起《黑客帝國》,不得不提到的一項技術便是腦機接口。畢竟從粘稠的電解質中,一個帥哥猙獰地坐起來、拔掉一根又一根線的場景實在是很難不讓人印象深刻。
  • 以改名為生的USB接口,終於拋棄了過去的自己?
    1962年11月3日,《紐約時報》在相關報導中第一次使用了「Personal Computer」一詞,也被認為是「個人計算機」概念的發端。不過真正具備現代電腦概念及類似使用方式的單人用小型計算機產品,則要算是三年後的DEC PDP-8(雖然它有小柜子那麼大,但因為確實能放在桌面上,因此被認為是最早的「臺式機」)。
  • 成立腦機接口及神經調控中心 瑞金醫院研究用腦機接口治抑鬱症
    圖片/受訪者供圖 製圖/潘文健馬斯克展示腦機接口設備無線實時讀取豬腦信息,引發了大家對腦機接口的熱切關注。「腦機接口」聽上去很科幻,不過,這項技術離我們越來越近。昨天,上海瑞金醫院腦機接口及神經調控中心成立儀式於瑞金醫院舉行,中心的第一個臨床腦機接口研究項目——「難治性抑鬱症腦機接口神經調控治療臨床研究」同時啟動,更多難治性抑鬱症患者將由此獲益。
  • MAP經作西北 | 成長中的Mapper
    中化理念,銘記於心轉型農業,幸福農民回首過去,收穫滿滿展望未來,信心百倍不斷學習,繼續揚帆再為MAP,譜寫新篇賈啟福(山定子)| 蘋果作物區——延長技術服務中心       2020年6月大學畢業,6月8日入職MAP經作西北,曾經想過讀研之後能夠從事植營生產企業,或者能夠在生產實際中幫助農戶
  • 貝爾金(BELKIN)推出HUAWEI VR Glass計算機數據線
    貝爾金(BELKIN)推出HUAWEI VR Glass計算機數據線 2020年01月03日 15:25作者:黃頁編輯:黃頁
  • 40種電子產品接口大全並附圖(上)
    超薄SCSI公母頭轉接器SCSI硬碟主要應用於中、高端伺服器和高檔工作站中,是一種廣泛應用於小型機上的高速數據傳輸技術。三、IDE接口/硬碟接口IDE代表著硬碟的一種類型,但在實際的應用中,人們也習慣用IDE來稱呼最早出現IDE類型硬碟ATA-1,這種類型的接口隨著接口技術的發展已經被淘汰了,而其後發展分支出更多類型的硬碟接口,比如ATA、Ultra ATA、DMA、Ultra DMA等接口都屬於
  • 科學家替馬斯克正名,植入1024個電極,腦機接口前途無量
    科學家在獼猴大腦中植入1024個電極,並順利完成了實驗,整個過程與馬斯克的腦機接口高度相似。今年的8月28日,馬斯克為腦機接口公司Neuralink代言,在全球範圍內招商引資,發布會現場親自展示了侵入式腦機接口。
  • 產品規劃藍Roadmap長什麼樣子?
    編輯導語:產品規劃藍圖通常可以稱之為「Roadmap」,它既能表達出產品未來成功的樣子,又能看出在產品生命周期過程中通過哪些步驟一步步讓產品走向成功的。那麼,Roadmap究竟長什麼樣子呢?我們跟著本文作者的腳步,一起去看一看。一、什麼是Roadmap?1.
  • 方正計算機的品牌介紹以及產品推薦【圖文】
    那麼接下來不妨就隨小編一起來了解幾個關於方正計算機的相關方面內容吧。我們將為大家詳細介紹方正計算機的品牌介紹以及產品推薦兩個板塊的信息。今天在賣場中,看到方正又一款下鄉機器到貨合肥,這就是方正D411IU-T420Z,2009年9月在市場報價為3399元。當然,如果你恰好是農村戶口的話,憑有效的身份證件,將會享受到13%的政府補貼。  方正D411IU-T420Z筆記本A面採用全新的亞克力鑲嵌工藝並 混搭 「蘇格蘭方格」紋理,防劃耐磨,在操作過程中,減少劃痕的出現。
  • M.2接口的顯卡你見過嗎?笑談電腦接口非常規用途
    M.2接口是一種兼容性十分廣泛的微型接口,該接口可以通過設置其接口上的KEY槽,以實現不同功能的接口,M.2接口可以支持以下協議--PCIe, PCIe LP,HSIC,SSIC,M-PCIe,DisplayPort,USB等。
  • 40種電子產品接口大全並附圖(下)
    二十五、SDI接口/攝像接口 大量的消費類音頻數字產品如民用CD機、DAT、MD機、計算機音效卡數字口等都支持S/PDIF,在不少專業設備上也有該標準的接口。
  • 初學者在選購錄音接口時的七個參考指標
    以下是我整理的一些關於錄音接口相關的小常識,希望能幫助到你~什麼是錄音接口? (Audio interface)Audio Interface 是我們在製作數位音樂時,不可缺少的器材之一,主要的功能是為了銜接計算機與錄音線材 作為音訊輸出與輸入的一個轉換。
  • 從頭再來:Java中的接口(接口可以是private的嗎?)
    Java的接口Java中可以定義一個私有接口嗎?答案是肯定的。那為什麼會用到私有的接口?回答這個問題之前先看看Java中的接口Java的接口接口提供了一種接口和實現分離的方法,在Java中通過關鍵字interface定義,接口中的方法都是抽象的(沒有實現體)。接口在現實中使用的太多了,比如插座的接口,手機的充電接口,耳機接口。接口只定義了協議,實現者只要實現這個接口定義即可。