Java教程

Java HashMap replace()

Java HashMap replace()

Java HashMap replace() 方法用哈希图中指定的新值替换指定键的映射。
replace() 方法的语法是:
hashmap.replace(K key, V oldValue, V newValue)
这里, hashmapHashMap 类的对象。

replace() 参数

replace() 方法可以带 3 个参数。
key-要替换​​其映射的键 oldValue(可选)-要在映射中替换的值 newValue-oldValue 被替换为这个值

replace() 返回值

HashMap replace() 方法替换映射并返回:
与指定键关联的前一个值,如果可选参数 oldValue 不存在 true,如果可选参数 oldValue 存在
注意: 如果指定的键被映射为空值,或者该键不存在于哈希图中,则该方法返回空值。

示例 1: 替换 HashMap 中的条目

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // create an HashMap
    HashMap<Integer, String> languages = new HashMap<>();
    // add entries to HashMap
    languages.put(1, "Python");
    languages.put(2, "English");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: " + languages);
    // replace mapping for key 2
    String value = languages.replace(2, "Java");
    System.out.println("Replaced Value: " + value);
    System.out.println("Updated HashMap: " + languages);
  }
}
输出
HashMap: {1=Python, 2=English, 3=JavaScript}
Replaced Value: English
Updated HashMap: {1=Python, 2=Java, 3=JavaScript}
在上面的例子中,我们创建了一个名为 languages 的 hashmap。在这里,我们使用 replace() 方法将键 1( 1=English) 的条目替换为指定的值 Java.
此处, replace() 方法没有可选的 oldValue 参数。因此,它返回旧值( English)。

示例 2: HashMap replace() 与旧值

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // create an HashMap
    HashMap<String, String> countries = new HashMap<>();
    // insert items to the HashMap
    countries.put("Washington", "America");
    countries.put("Ottawa", "Canada");
    countries.put("Canberra", "Australia");
    System.out.println("Countries:\n" + countries);
    // replace mapping {Washington = America}
    countries.replace("Washington", "America", "USA");  // return true
    countries.replace("Canberra", "New Zealand", "Victoria");  // return false
    System.out.println("Countries after replace():\n" + countries);
  }
}
输出
Countries:
{Canberra=Australia, Ottawa=Canada, Washington=America}
Countries after replace():
{Canberra=Australia, Ottawa=Canada, Washington=USA}
在上面的示例中,我们创建了一个名为 countries 的哈希图。注意这一行,
countries.replace("Washington", "America", "USA");
此处, replace() 方法包含可选的 oldValue 参数( America)。因此,键 Washington 映射到值 America 的映射被替换为新值 USA
但是,请注意这一行,
countries.replace("Canberra", "New Zealand", "Victoria");
这里,在哈希图中,键 Canberra 没有映射到值 New Zealand。因此, replace() 方法不会替换任何值。
注意: 我们可以使用 Java HashMap clear() 方法从哈希图中删除所有映射。

HashMap put() 对比。替换()

put()replace() 方法的语法在 HashMap 中看起来非常相似。
// syntax of put()
hashmap.put(key, value)
// syntax of replace()
hashmap.replace(key, value)
并且,当 hashmap 包含指定键的映射时,两种方法都会替换与指定键关联的值。
但是,如果 hashmap 不包含指定键的任何映射,则
put() 方法为指定的键和值插入新的映射 replace() 方法返回 null

示例 3: HashMap put() 对比。替换()

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // create an HashMap
    HashMap<Integer, String> languages1 = new HashMap<>();
    // insert entries to HashMap
    languages1.put(1, "Python");
    languages1.put(2, "JavaScript");
    // create another HashMap similar to languages1
    HashMap<Integer, String> languages2 = new HashMap<>();
    // puts all entries from languages1 to languages2
    languages2.putAll(languages1);
    System.out.println("HashMap: " + languages1);
    // use of put()
    languages2.put(3, "Java");
    System.out.println("HashMap after put():\n" + languages2);
    // use of replace()
    languages1.replace(3, "Java");
    System.out.println("HashMap after replace():\n" + languages1);
  }
}
输出
HashMap: {1=Python, 2=JavaScript}
HashMap after put():
{1=Python, 2=JavaScript, 3=Java}
HashMap after replace():
{1=Python, 2=JavaScript}
在上面的示例中,我们创建了两个名为 languages1languages2 的哈希映射。我们使用了 HashMap putAll() 方法,以便两个哈希图具有相同的映射。
此处,键 3 的映射不存在于哈希图中。因此,
put() 方法将新映射 (3 = Java) 添加到 HashMap replace() 方法不执行任何操作
要了解有关添加条目的更多信息,请访问 Java HashMap put()。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4