一、引言
在Java中,Map是非常常見的一種數據結構。Map提供了一種鍵值對的映射關係。putAll是Map介面中定義的一個方法,它可以將一個Map中的所有鍵值對都放入到當前Map中。本文主要介紹putAll的應用場景以及使用方法。
二、putAll方法介紹
putAll方法是Map介面中定義的一個方法,其方法簽名如下:
void putAll(Map m);
其中,m表示要添加的Map。putAll方法將m中的所有鍵值對添加到當前Map中。如果當前Map中已經存在m中某一鍵的映射關係,那麼該鍵的映射值將被m中對應鍵的映射值覆蓋。
三、putAll方法的應用場景
1.合併Map
假設現在有兩個Map,它們的鍵值對互不相同。現在我們需要將這兩個Map合併成一個Map並返回,那麼這個操作的實現可以使用putAll方法。
public Map<K, V> mergeMaps(Map<K, V> map1, Map<K, V> map2) { Map<K, V> result = new HashMap<>(); result.putAll(map1); result.putAll(map2); return result; }
鍵值對互不相同的情況下,使用putAll方法可以保證合併後不會有重複鍵和值。
2.覆蓋Map
如果現在有兩個Map,它們的鍵值對存在重複。現在我們需要將Map1中的鍵值對覆蓋到Map2中,那麼可以使用putAll方法。下面給出示例代碼:
Map<String, Integer> map1 = new HashMap<>(); map1.put("A", 1); map1.put("B", 2); Map<String, Integer> map2 = new HashMap<>(); map2.put("A", 0); map2.put("C", 3); map2.putAll(map1); System.out.println(map2);
輸出結果為:
{A=1, C=3, B=2}
從輸出結果可以看出,鍵為”A”的鍵值對被覆蓋了。由於覆蓋操作是根據鍵來匹配的,因此對於值的類型沒有任何限制。
3.批量插入Map
如果需要往一個Map中批量插入鍵值對,那麼可以使用putAll方法。下面給出示例代碼:
Map<String, Integer> map = new HashMap<>(); map.putAll(Arrays.asList( new AbstractMap.SimpleEntry<>("A", 1), new AbstractMap.SimpleEntry<>("B", 2), new AbstractMap.SimpleEntry<>("C", 3) )); System.out.println(map);
輸出結果為:
{A=1, B=2, C=3}
上述代碼使用了Java8的新特性”Stream”,它可以將一個集合轉換為另一個集合。這裡將一個List<Map.Entry<K, V>>轉換為一個Map<K, V>。
四、putAll方法的使用方法
使用putAll方法很簡單,只需要調用Map對象的putAll方法,並將要添加的Map對象作為參數傳遞進去即可。下面給出示例代碼:
Map<String, Integer> map1 = new HashMap<>(); map1.put("A", 1); map1.put("B", 2); Map<String, Integer> map2 = new HashMap<>(); map2.put("C", 3); map2.putAll(map1); System.out.println(map2);
輸出結果為:
{A=1, C=3, B=2}
五、總結
本文介紹了Java中Map的putAll方法的使用方法和應用場景。除了上述描述的內容,putAll方法還可以用於將一個Hashtable賦值給一個Properties對象,實現快速將配置文件中的鍵值對載入到Properties對象中。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/198350.html