java數據結構總結之map,java數據結構筆記

本文目錄一覽:

java裏面的map是什麼?

java為數據結構中的映射定義了一個接口java.util.Map

Map主要用於存儲健值對,根據鍵得到值,因此不允許鍵重複(重複了覆蓋了),但允許值重複。

java教程之Map應該怎麼用

Map集合:

確保唯一性依賴於hashCode()和equals方法

HashSet底層依賴於HashMap,TreeSet底層依賴於TreeMap

Map集合石雙列的,Collection是單列的

Map的鍵唯一,Collection的子體系Set是唯一的

Map集合的數據結構值針對鍵有效,跟值無關,Collection集合的數據結構是針對元素有效

添加:V put(K key,V value);

如果鍵是第一次儲存就直接存,返回null,如果不是,就用值把以前覆蓋並返回舊值

刪除:void clear();清空

V remove(Object key);根據鍵刪除鍵值對元素,返回值

判斷:

boolean containsKey(0bject key) 判斷集合是否包含指定的鍵

boolean containsValue(Object value)判斷集合是否包含指定的值

boolean isEmpty() 判斷集合是否為空

獲取:

V get(Object key) 根據鍵獲取值

SetK keySet() 獲取集合中所有鍵的集合

CollectionV values() 獲取集合中所有值的集合

長度:

int size() 返回集合中的鍵值對數

遍歷:

1.

Set keySet = hm.keySet();

hm.get(key);

2.

SetMap.Entry, = hm.entrySet();

Map.Entry,.getKey()

Map.Entry,.getValue()

TreeMap對鍵進行比較

帶你輕鬆理解數據結構之Map

Map結構跟我們上節講解的set結構語法差不多 《理解數據結構之Set,只要5分鐘》 ,不同是Map語法是一種數組鍵值對格式,Map也是處理了防止對象鍵值強制類型轉換問題。Map是利用數組特性解決的,我們都知道數組可以傳入任意類型值,所以Map結構也接收所有類型值。我們剛才說了值不會向對象那樣進行強制類型轉換,如24和”24″就是兩種類型關係,互不會影響 。

上面example中,創建一個Map對象,上面我們說過Map是一個數組對象,裏面還接收一個數組對象也就是二維數組,裏面的參數也就是鍵值對形式,然後設置map值,map.set方法接收兩個參數,前者是key值後者是value值。這時Map對象添加了name值

上面example中,Map對象提供了查看size屬性,查看當前Map結構有幾組數據。

上面example中,我們使用Map.get方法獲取對象的屬性值。如果獲取一個Map對象中不存在的則返回undefined。

上面example中,Map.has返回的是一個Boolean值,會去這個Map中查找如果找到返回true,否則返回false,一般用於檢測這個Map中存在該值的時候使用。

上面example中,Map.delete方法刪除結構中某個值,如果這個值存在Map結構中刪除則返回true,如果刪除一個不存在的值則返回false。

上面example中,Map.clear該方法則會清除Map結構中所有的屬性。

上面example中,可以看到Map結構是一個二維數組,裏面是鍵值對形式的。Map結構也可以使用forEach遍歷,它接收3個參數:

我們上面講了Map可以forEach遍歷,這樣循環解析也可以組成一個新的對象。那麼Es6方法新提供了快速將這種結構轉換為對象。

一句話總結:Set結構主要用作於判斷某個值是否存在該對象中,而Map結構主要用作於從當前結構中獲取該對象的值。

有的情況下我們需求想實現,我第一次請求後台接口Api,當我請求過後第二次就走緩存,不在發送接口Api。

我們在項目需求時,肯定會遇到一個狀態對應着一種操作,如下:

Java的數據結構你用過哪些?Map與Set的本質區別是什麼?

java中常見的數據結構有:

數組

集合類——Collection(list(ArrayList,LinkedList),set(HashSet))

List 是鏈表(接口),是可以允許出現重複值的。它的具體實現類:ArrayList和LinkedList

set 是集合(接口),不允許出現重複值。它的具體實現類HashMap

ArrayList 實現鏈表的內部結構是用數組(Array)。查找高效,修改低效

LinkedList 實現鏈表的內部結構是鏈表(Linked)。查找低效,修改高效

set是集合(接口),不允許出現重複值

Iterator迭代器

簡介:java提供的迭代器接口進行java collection的遍歷。Iterator模式是用於遍歷類的標準訪問方法

所有的繼承Coollection的集合類子類,都有Iterator()方法用於反饋迭代器,程序額可以獲取這個迭代器對象對Collection對象中的元素進行遍歷。

鍵值對容器 ——Map

Map是一種把鍵對象和值對象進行關聯的容器

指出:像set一樣,一個Map容器中的鍵對象不允許重複,這是為了保證查找結果的一致性。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/307357.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-02 18:06
下一篇 2025-01-02 18:06

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論