HashMap的基本使用

来源:https://www.cnblogs.com/hanlk/archive/2019/07/22/11229058.html
-Advertisement-
Play Games

常用方法 首先,我們應該知道HashMap類實現了Map介面,所以實現了Map常用的一些方法。 (1) 插入鍵值對數據 public V put(K key, V value) (2)根據鍵值獲取鍵值對值數據 public V get(Object key) (3)獲取Map中鍵值對的個數 publ ...


常用方法

首先,我們應該知道HashMap類實現了Map介面,所以實現了Map常用的一些方法。

(1) 插入鍵值對數據

public V put(K key, V value)

(2)根據鍵值獲取鍵值對值數據

public V get(Object key)

(3)獲取Map中鍵值對的個數

public int size()

(4)判斷Map集合中是否包含鍵為key的鍵值對

public boolean containsKey(Object key)

(5)判斷Map集合中是否包含值為value的鍵值對

boolean containsValue(Object value)

(6)判斷Map集合中是否沒有任何鍵值對

public boolean isEmpty()

(7)清空Map集合中所有的鍵值對

public void clear()

(8)根據鍵值刪除Map中鍵值對

public V remove(Object key)

示例

 1 import java.util.HashMap;
 2 import java.util.Map;
 3 
 4 public class Demo01 {
 5 
 6     public static void main(String[] args) {
 7         // 聲明HashMap對象
 8         Map<String,Integer> map= new HashMap<>();
 9 
10         //添加數據
11         map.put("ZhangYi",98);
12         map.put("WangEr",99);
13         map.put("ZhangShan",89);
14         map.put("Lisi",92);
15 
16         //根據鍵值對鍵值獲取數據‘’
17         int value=map.get("Lisi");
18         System.out.println("kay:Lisi And value:"+value);
19 
20         //獲取Map中鍵值對的個數
21         int size=map.size();
22         System.out.println("map 中的鍵值對個數為:"+size);
23 
24         //判斷Map集合中是否包含鍵為key的鍵值對
25         boolean b1=map.containsKey("LiSI");
26         boolean b2=map.containsKey("Lisi");
27         System.out.println("是否包含鍵值為LiSI的鍵值對數據:"+b1);
28         System.out.println("是否包含鍵值為Lisi的鍵值對數據:"+b2);
29 
30         //判斷Map集合中是否包含值為value的鍵值對
31         boolean b3=map.containsValue(99);
32         boolean b4=map.containsValue(100);
33         System.out.println("是否包含值為99的鍵值對數據:"+b3);
34         System.out.println("是否包含值為100的鍵值對數據:"+b4);
35 
36         //判斷Map集合中是否沒有任何鍵值對
37 
38         boolean b5=map.isEmpty();
39         System.out.println("map中鍵值對數據是否為空:"+b5);
40 
41         //根據鍵值刪除Map中鍵值對
42         int value2=map.remove("Lisi");
43         System.out.println("刪除了鍵為Lisi的鍵值對數據,其值為:"+value2);
44 
45         boolean b6=map.containsKey("Lisi");
46         System.out.println("是否包含鍵值為Lisi的鍵值對數據:"+b6);
47 
48         //清空Map集合中所有的鍵值對
49         map.clear();
50         boolean b7=map.isEmpty();
51         System.out.println("map中鍵值對數據是否為空:"+b7);
52 
53     }
54 }

 

輸出結果為:

kay:Lisi And value:92
map 中的鍵值對個數為:4
是否包含鍵值為LiSI的鍵值對數據:false
是否包含鍵值為Lisi的鍵值對數據:true
是否包含值為99的鍵值對數據:true
是否包含值為100的鍵值對數據:false
map中鍵值對數據是否為空:false
刪除了鍵為Lisi的鍵值對數據,其值為:92
是否包含鍵值為Lisi的鍵值對數據:false
map中鍵值對數據是否為空:true

 

 

鍵值對數據遍歷

(1)將Map中所有的鍵裝到Set集合中返回

//public Set<K> keySet();
Set<K> set=map. keySet()

(2)返回集合中所有的value的值的集合

// public Collection<V> values();
Collection<V> c=map.values()

(3)將每個鍵值對封裝到一個個Entry對象中,再把所有Entry的對象封裝到Set集合中返回

// public Set<Map.Entry<K,V>> entrtSet();
Set<Map.Entry<K,V>> entrys=map.entrySet()

示例:

 1 import java.util.Collection;
 2 import java.util.HashMap;
 3 import java.util.Map;
 4 import java.util.Set;
 5 
 6 public class Demo02 {
 7     public static void main(String[] args) {
 8         // 聲明HashMap對象
 9         Map<String,Integer> map= new HashMap<>();
10 
11         //添加數據
12         map.put("ZhangYi",98);
13         map.put("WangEr",99);
14         map.put("ZhangShan",89);
15         map.put("Lisi",92);
16 
17         //(1)將Map中所有的鍵裝到Set集合中返回
18         Set<String> keys=map.keySet();
19         for(String key:keys){
20             int value=map.get(key);
21             System.out.println("key:"+key+"  and  value:"+value);
22         }
23 
24         //(2)返回集合中所有的value的值的集合
25         Collection<Integer> values=map.values();
26         for(int value:values){
27             System.out.print(value+"   ");
28         }
29         System.out.println();
30 
31         //(3)將每個鍵值對封裝到一個個Entry對象中,再把所有Entry的對象封裝到Set集合中返回
32         Set<Map.Entry<String,Integer>> entries=map.entrySet();
33         for(Map.Entry<String,Integer> entry :entries){
34             String key=entry.getKey();
35             int value=entry.getValue();
36             System.out.println("key:"+key+"  and  value:"+value);
37         }
38     }
39 
40 }

 

輸出結果為:

key:Lisi  and  value:92
key:ZhangYi  and  value:98
key:ZhangShan  and  value:89
key:WangEr  and  value:99
92   98   89   99   
key:Lisi  and  value:92
key:ZhangYi  and  value:98
key:ZhangShan  and  value:89
key:WangEr  and  value:99

 

 

 

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  •   Class文件是一組以8位位元組為基礎單位的二進位流,各個數據項目嚴格按照順序緊湊排列在Class文件中,中間沒有添加任何分隔符,這使得整個Class文件中存儲的內容幾乎全部是程式運行的必要數據,沒有空隙。當遇到需要占用8位位元組以上的數據項時,會按照高位在前的方式分割成若幹個8 ...
  • 註意: HttpServletRequest 請求中的 body 內容僅能調用 request.getInputStream(), request.getReader()和request.getParameter("key") 方法讀取一次,重覆讀取會報 java.io.IOException: S ...
  • 第八章 複雜搜索 黑夜給了我黑色的眼睛,我卻用它尋找光明。 經過瞭解簡單的API和簡單搜索,已經基本上能應付大部分的使用場景。可是非關係型資料庫數據的文檔數據往往又多又雜,各種各樣冗餘的欄位,組成了一條"記錄"。複雜的數據結構,帶來的就是複雜的搜索。所以在進入本章節前,我們要構建一個儘可能"複雜"的 ...
  • https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html ...
  • 1、static介紹 static關鍵字一直是各大企業中面試常常會問到的問題,主要考察面試者的基礎是否扎實,下麵來介紹一下static關鍵字。 Java中static表示“全局”或者“靜態”的意思,可以用來修飾成員變數、成員方法、代碼塊、內部類和導包。在Java中並不存在全局變數的概念,但是我們可以 ...
  • 響應數據和結果視圖 返回值分類 1.返回值是String 返回值類型是字元串的,會根據返回的字元串去尋找相對應的jsp頁面 2.返回值是Void 預設請求路徑是什麼就會去尋找請求路徑的jsp 編寫請求轉發和重定向的程式和直接響應 返回值是ModelAndView對象 (存JavaBean對象和跳轉頁 ...
  • 前言 今天我們一起學習下java.util.concurrent併發包里的 "CopyOnWriteArrayList" 工具類。當有多個線程可能同時遍歷、修改某個公共數組時候,如果不希望因使用 synchronize 關鍵字鎖住整個數組而影響性能,可以考慮使用CopyOnWriteArrayLis ...
  • 新聞 "ML.NET 1.2發佈,包含Model Builder升級" "NuGet.org上現在顯示GitHub的使用情況" "微基準測試設計準則" "為線程添加mono.wasm支持" "Haskell——經驗總結" "MSBuild二進位與結構日誌瀏覽器" 視頻及幻燈片 "F MonoGame ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...