一、Map初始化
Map是Java中的一種數據結構,用於存儲鍵值對。初始化Map有兩種主要方法。第一種方法使用put方法手動為Map添加鍵值對;第二種方法使用靜態代碼塊初始化Map。
1. put方法手動添加鍵值對
put方法允許我們向Map中添加鍵值對。例如,創建一個String到Integer的Map:
Map<String, Integer> map = new HashMap<>(); map.put("One", 1); map.put("Two", 2); map.put("Three", 3);
這裡創建了一個HashMap,並向HashMap中添加了三個鍵值對。第一個參數是鍵,第二個參數是值。
2. 靜態代碼塊初始化Map
Java允許我們使用靜態代碼塊來初始化Map。這種方法比手動添加鍵值對更簡潔。例如:
private static Map<String, Integer> map = new HashMap<>(); static { map.put("One", 1); map.put("Two", 2); map.put("Three", 3); }
這裡我們初始化了一個靜態Map,它的鍵為String類型,值為Integer類型。
二、Map賦值
Map的賦值有多個方法可供選擇。這些方法包括:
1. put方法
可以使用put方法為Map添加鍵值對。如果該鍵已經存在,則該鍵的值將被更新。例如:
Map<String, Integer> map = new HashMap<>(); map.put("One", 1); map.put("Two", 2); map.put("Three", 3); map.put("Two", 4);
這裡我們為鍵“Two”重新賦值,並將其值從2更改為4。
2. replace方法
使用replace方法可以替換Map中的鍵值對。如果該鍵不存在,則該方法不會執行任何操作。例如:
Map<String, Integer> map = new HashMap<>(); map.put("One", 1); map.put("Two", 2); map.put("Three", 3); map.replace("Two", 4); map.replace("Four", 4);
這裡我們使用replace方法將鍵“Two”的值替換為4。第二個replace方法不會生效,因為鍵“Four”不存在。
3. putAll方法
putAll方法允許我們將一個Map中的所有鍵值對添加到另一個Map中。如果該鍵已經存在,則該鍵的值將被更新。例如:
Map<String, Integer> map1 = new HashMap<>(); map1.put("One", 1); map1.put("Two", 2); Map<String, Integer> map2 = new HashMap<>(); map2.put("Three", 3); map2.put("Two", 4); map1.putAll(map2);
這裡我們將map2中的鍵值對添加到map1中,鍵“Two”的值將更新為4。
4. compute方法
compute方法將對Map中指定鍵的值執行自定義處理。它的第二個參數是一個函數,該函數將對指定鍵的值進行處理。例如:
Map<String, Integer> map = new HashMap<>(); map.put("One", 1); map.put("Two", 2); map.compute("Two", (k, v) -> v + 10);
這裡我們對鍵“Two”的值執行自定義處理,將其增加10。現在鍵“Two”的值為12。
5. computeIfAbsent方法
computeIfAbsent方法將只在指定鍵不存在時執行自定義處理。它的第二個參數是一個函數,該函數將返回指定鍵的默認值。例如:
Map<String, Integer> map = new HashMap<>(); map.put("One", 1); map.put("Two", 2); map.computeIfAbsent("Three", k -> 3); map.computeIfAbsent("Two", k -> 5);
這裡我們對鍵“Three”執行自定義處理,添加默認值3。對於鍵“Two”,我們不執行自定義處理,因為它已經存在。
6. computeIfPresent方法
computeIfPresent方法將只在指定鍵存在時執行自定義處理。它的第二個參數是一個函數,該函數將返回指定鍵的新值。例如:
Map<String, Integer> map = new HashMap<>(); map.put("One", 1); map.put("Two", 2); map.computeIfPresent("Three", (k, v) -> v + 3); map.computeIfPresent("Two", (k, v) -> v + 10);
這裡我們對鍵“Three”不執行自定義處理,因為它不存在。對於鍵“Two”,我們執行自定義處理,將其增加10。
三、結論
本文簡要介紹了Java中Map的初始化和賦值方法。我們了解了put方法、replace方法、putAll方法、compute方法、computeIfAbsent方法和computeIfPresent方法。Map的初始化和賦值非常重要,可以提高代碼的可讀性和可維護性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/248965.html