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()方法沒(méi)有可選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ǔ)法看起來(lái)非常相似。
// 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è)類(lèi)似于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í)行任何操作
訪問(wèn)Java HashMap put()方法以了解有關(guān)添加條目的更多信息。