深入我們的編程世界:Map集合遍歷

一、Map集合遍歷賦值

Map myMap = new HashMap();
myMap.put(1, "apple");
myMap.put(2, "banana");

Map集合是一種鍵值對的數據結構,可以用於存儲鍵值對的映射關係,其中鍵是唯一的。在上面的代碼示例中,我們首先用put方法往myMap中添加了兩個鍵值對,1-apple和2-banana。

二、Map集合遍歷的方式和單列

Map myMap = new HashMap();
myMap.put(1, "apple");
myMap.put(2, "banana");
for(Map.Entry entry : myMap.entrySet()){
   System.out.println("Key: "+ entry.getKey() +", Value: " + entry.getValue());
}

遍歷一個Map集合的方式有多種,其中entrySet方法返回一個Set集合,其中存放的是Map.Entry對象,每個Map.Entry對象代表一個鍵值對。我們可以使用for循環和增強型for循環分別遍歷出每個鍵值對的鍵和值。在上面的代碼示例中,我們用增強型for循環遍歷出了每個鍵值對,並輸出了鍵和值。

與單列不同的是,Map集合遍歷需要注意每個鍵是唯一的,因此不能像單列一樣直接使用下標索引。

三、Map集合遍歷取值

Map myMap = new HashMap();
myMap.put(1, "apple");
myMap.put(2, "banana");
String value1 = myMap.get(1);
String value2 = myMap.get(2);
System.out.println(value1);
System.out.println(value2);

Map集合的get方法可以獲取一個鍵對應的值,如上面的代碼示例所示,我們用get方法分別獲取了鍵1和鍵2所對應的值,即apple和banana,並將它們輸出。

四、Map集合遍歷key

Map myMap = new HashMap();
myMap.put(1, "apple");
myMap.put(2, "banana");
Set keySet = myMap.keySet();
for(Integer key : keySet){
    System.out.println("Key: "+ key +", Value: " + myMap.get(key));
}

除了通過entrySet方法獲取全部的鍵值對外,我們也可以通過keySet方法獲取到鍵的Set集合,然後通過for循環遍歷Set集合中的每個鍵,並用get方法獲取到對應的值。需要注意的是,在使用get方法時,我們需要傳入鍵作為參數。

五、Map集合遍歷的方式

上面介紹了兩種常用的Map集合遍歷方式,那麼還有其他的遍歷方式嗎?答案是肯定的。

第一種方式是使用迭代器,如下所示:

Map myMap = new HashMap();
myMap.put(1, "apple");
myMap.put(2, "banana");
Iterator<Map.Entry> iter = myMap.entrySet().iterator();
while(iter.hasNext()){
    Map.Entry entry = iter.next();
    System.out.println("Key: "+ entry.getKey() +", Value: " + entry.getValue());
}

這種方式的代碼與entrySet方法遍歷是比較類似的,都需要通過Iterator迭代器來實現。不同的是,使用Iterator迭代器需要顯式地調用next方法,而增強型for循環是不需要顯式調用的。

第二種方式是使用lambda表達式,如下所示:

Map myMap = new HashMap();
myMap.put(1, "apple");
myMap.put(2, "banana");
myMap.forEach((key, value) ->
    System.out.println("Key: " + key + ", Value: " + value));

這種方式使用了forEach方法,其參數是一個lambda表達式,可以用來遍歷Map集合中的每個鍵值對。需要注意的是,如果要在lambda表達式內部調用多條語句,則需要用{}將這些語句包裹起來。

六、Map集合遍歷方式優缺點

上面介紹了多種方式來遍歷Map集合,那麼它們各自有什麼優缺點呢?

  • entrySet方法遍歷優點在於,可以同時獲取鍵和值,而且操作簡單直觀。缺點是需要新建一個Set集合,佔用一定內存。
  • keySet方法遍歷優點在於,遍歷方便,不需要使用Map.Entry對象。缺點是需要通過鍵來獲取值,效率會略低。
  • 使用迭代器遍歷的優點是,隨機訪問性能好,能夠快速定位到某個位置進行操作。缺點是代碼相對比較繁瑣。
  • lambda表達式遍歷的優點在於,寫法簡單、直觀。缺點是有些開發者可能不太習慣使用lambda表達式。

七、Map集合遍歷幾種方式

以上介紹了四種常用的Map集合遍歷方式,除此之外,還有一些其他的方式也可以用來遍歷Map集合,例如使用values方法獲取值的Collection集合,或者使用 forEachEntry 方法遍歷等等。開發者可以根據具體需求來選擇合適的遍歷方式。

八、Map集合遍歷替換key值

Map myMap = new HashMap();
myMap.put(1, "apple");
myMap.put(2, "banana");
myMap.keySet().stream()
               .filter(key -> key == 1)
               .findAny()
               .ifPresent(key -> myMap.put(key, "orange"));
System.out.println(myMap);

除了普通的遍歷方式外,我們還可以使用Stream API進行Map集合的遍歷,並對其中的鍵或值進行替換。上述代碼中,通過filter方法篩選出鍵為1的鍵值對,並通過forEach方法將其鍵的值替換為orange。

本文介紹了多種Map集合遍歷的方式,包括entrySet、keySet、迭代器、lambda表達式等等。每種方式都有各自的優缺點,開發者可以根據自身需求選擇合適的方式進行遍歷。希望本文對讀者有所幫助!

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 18:59
下一篇 2024-11-19 18:59

相關推薦

  • Python遍歷集合中的元素

    本文將從多個方面詳細闡述Python遍歷集合中的元素方法。 一、for循環遍歷集合 Python中,使用for循環可以遍歷集合中的每個元素,代碼如下: my_set = {1, 2…

    編程 2025-04-29
  • Python如何遍歷字典中的key和value

    本文將詳細講解Python中如何遍歷字典中的key和value,包括多種遍歷方式以及在遍歷過程中的一些應用場景。 一、遍歷字典中的key和value 在Python中,字典是一種無…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 二叉樹非遞歸先序遍歷c語言

    本文將為您詳細介紹二叉樹的非遞歸先序遍歷演算法,同時提供完整的C語言代碼示例。通過本文,您將了解到二叉樹的先序遍歷演算法,以及非遞歸實現的方式。 一、二叉樹的先序遍歷演算法介紹 在介紹二…

    編程 2025-04-28
  • Python如何遍歷列表

    在Python編程中,列表是一種常用的數據類型,它允許我們存儲多個值。但是,我們如何遍歷列表並對其中的每個值進行操作呢? 一、for循環遍歷列表 fruits = [‘apple’…

    編程 2025-04-28
  • Python遍歷字典刪除元素

    本文主要介紹Python中如何遍歷字典並刪除元素。在實際應用中,遍歷字典並刪除元素是一種非常常見的操作,但需要注意的是,直接在字典中刪除元素可能會改變字典中其他元素的索引順序,因此…

    編程 2025-04-28
  • Python快捷:走進Python快速編程世界

    Python作為一種高級編程語言,近年來備受關注。其主張簡單明了、易於閱讀的語法,以及豐富的庫和模塊,使其成為了全球程序員愛寵。在Python中,快捷編程的理念極為重要,使得開發者…

    編程 2025-04-27
  • Python遍歷文件夾中的shp文件

    對於GIS分析領域的開發工程師,遍歷文件夾中的shp文件是一個常見的需求。Python提供了一種非常便捷的方法來實現這個功能。本文將從以下幾個方面進行講解: 一、`os`模塊的使用…

    編程 2025-04-27
  • Python中遍歷字元串中的數字兩位數及其應用

    本文將從多個方面詳細闡述Python中遍歷字元串中的數字兩位數的應用及實現方法。 一、提取字元串中的數字兩位數 Python中提取字元串中的數字兩位數可以使用正則表達式,具體代碼如…

    編程 2025-04-27
  • Python中for循環遍歷列表

    本文將全方位詳細介紹Python中for循環遍歷列表的方法和技巧,幫助您更加深入理解並靈活運用Python中的for循環。 一、for循環遍歷列表的基礎用法 在Python中使用f…

    編程 2025-04-27

發表回復

登錄後才能評論