Java HashMap replace()方法將指定鍵的映射替換為哈希映射中指定的新值
replace()方法的語(yǔ)法為:
hashmap.replace(K key, V oldValue, V newValue)
key - 要替換其映射的鍵
oldValue (可選)- 映射中要替換的值
newValue - oldValue被替換為這個(gè)值
HashMap replace()方法替換映射并返回:
如果可選參數(shù)oldValue不存在,則為與指定鍵關(guān)聯(lián)的上一個(gè)值
如果存在可選參數(shù)oldValue,則為true
注意: 如果指定的鍵映射到null值,或者該鍵不在hashmap中,則該方法返回null。
import java.util.HashMap; class Main { public static void main(String[] args) { // 創(chuàng)建 HashMap HashMap<Integer, String> languages = new HashMap<>(); //將條目添加到HashMap languages.put(1, "Python"); languages.put(2, "English"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); //替換鍵2的映射 String value = languages.replace(2, "Java"); System.out.println("被替換的值: " + value); System.out.println("更新后的 HashMap: " + languages); } }
輸出結(jié)果
HashMap: {1=Python, 2=English, 3=JavaScript} 被替換的值: English 更新后的 HashMap: {1=Python, 2=Java, 3=JavaScript}
在上面的示例中,我們創(chuàng)建了一個(gè)名為languages的哈希映射。在這里,我們已使用replace()方法將鍵1(1=English)的條目替換為指定的值Java。
在此,replace()方法沒有可選oldValue參數(shù)。因此,它返回舊值(English)。
import java.util.HashMap; class Main { public static void main(String[] args) { //創(chuàng)建 HashMap HashMap<String, String> countries = new HashMap<>(); //將項(xiàng)目插入HashMap countries.put("Washington", "America"); countries.put("Ottawa", "Canada"); countries.put("Canberra", "Australia"); System.out.println("Countries:\n" + countries); // 替換映射 {Washington = America} countries.replace("Washington", "America", "USA"); // 返回 true countries.replace("Canberra", "New Zealand", "Victoria"); // 返回 false System.out.println("執(zhí)行 replace()之后的 Countries:\n" + countries); } }
輸出結(jié)果
Countries: {Canberra=Australia, Ottawa=Canada, Washington=America} 執(zhí)行 replace()之后的 Countries: {Canberra=Australia, Ottawa=Canada, Washington=USA}
在上面的示例中,我們創(chuàng)建了一個(gè)名為countries的哈希映射 。注意這一行,
countries.replace("Washington", "America", "USA");
在此,replace() 方法包括可選oldValue參數(shù)(America)。因此,將鍵Washington映射到值A(chǔ)merica的映射替換為新的值USA。
但是請(qǐng)注意,
countries.replace("Canberra", "New Zealand", "Victoria");
在此,在哈希映射中,鍵Canberra未映射到值New Zealand。因此,replace()方法不會(huì)替換任何值。
注意:我們可以使用 Java HashMap clear() 方法從哈希映射中刪除所有映射。
在HashMap中,put()和replace()方法的語(yǔ)法看起來非常相似。
// put() 語(yǔ)法 hashmap.put(key, value) // replace() 語(yǔ)法 hashmap.replace(key, value)
并且,當(dāng)哈希映射包含指定鍵的映射時(shí),則這兩種方法都會(huì)替換與指定鍵關(guān)聯(lián)的值。
但是,如果哈希映射不包含指定鍵的任何映射,則
put()方法為指定的鍵和值插入新的映射
replace()方法返回null
import java.util.HashMap; class Main { public static void main(String[] args) { // 創(chuàng)建 HashMap HashMap<Integer, String> languages1 = new HashMap<>(); // 向HashMap插入條目 languages1.put(1, "Python"); languages1.put(2, "JavaScript"); //創(chuàng)建另一個(gè)類似于languages1的HashMap HashMap<Integer, String> languages2 = new HashMap<>(); //將所有條目從language1放入language2 languages2.putAll(languages1); System.out.println("HashMap: " + languages1); // 使用 put() languages2.put(3, "Java"); System.out.println("put()之后的HashMap:\n" + languages2); // 使用 replace() languages1.replace(3, "Java"); System.out.println("HashMap after replace():\n" + languages1); } }
輸出結(jié)果
HashMap: {1=Python, 2=JavaScript} put()之后的HashMap: {1=Python, 2=JavaScript, 3=Java} HashMap 之后的HashMap(): {1=Python, 2=JavaScript}
在上面的示例中,我們創(chuàng)建了兩個(gè)名為languages1和languages2的哈希映射。我們使用了HashMap putAll()方法,以便兩個(gè)哈希映射具有相同的映射。
在此,哈希映射中不存在鍵3的映射。 因此,
put()方法將新的映射(3 = Java)添加到HashMap
replace()方法不執(zhí)行任何操作
訪問Java HashMap put()方法以了解有關(guān)添加條目的更多信息。