一、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-hant/n/159448.html