English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Manejo de excepciones en Java

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java HashMap replace() 使用方法及示例

Java HashMap 方法

Java HashMap replace()方法将指定键的映射替换为哈希映射中指定的新值

replace()方法的语法为:

hashmap.replace(K key, V oldValue, V newValue)

replace()参数

  • key  - 要替换其映射的键

  • oldValue (可选)- 映射中要替换的值

  • newValue - oldValue被替换为这个值

replace()返回值

 HashMap replace()方法替换映射并返回:

  • 如果可选参数oldValue不存在,则为与指定键关联的上一个值

  • 如果存在可选参数oldValue,则为true

nota:如果指定的键映射到null值,或者该键不在hashmap中,则该方法返回null。

ejemplo1:替换HashMap中的条目

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // crear HashMap
    HashMap<Integer, String> languages = new HashMap<>();
    //Agregar entrada al HashMap
    languages.put(1, "Python");
    languages.put(2, "Inglés");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: " + languages);
    //Reemplazar clave2del mapeo
    String value = languages.replace(2, "Java");
    System.out.println("Valor reemplazado: " + value);
    System.out.println("HashMap actualizado: " + languages);
  }
}

输出结果

HashMap: {1=Python, 2=Inglés, 3=JavaScript}
Valor reemplazado: Inglés
HashMap actualizado: {1=Python, 2=Java, 3=JavaScript}

En el ejemplo anterior, creamos un mapeo de cadenas llamado languages. Aquí, hemos utilizado el método replace() para reemplazar la clave1(1Se reemplaza el elemento =English) con el valor especificado Java.

Aquí, el método replace() no tiene un parámetro oldValue opcional. Por lo tanto, devuelve el valor antiguo (Inglés).

ejemplo2Tiene un HashMap replace() con valores antiguos

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    //crear HashMap
    HashMap<String, String> countries = new HashMap<>();
    //Insertar elementos en HashMap
    countries.put("Washington", "America");
    countries.put("Ottawa", "Canada");
    countries.put("Canberra", "Australia");
    System.out.println("Countries:\n" + countries);
    // reemplaza el mapeo {Washington = America}
    countries.replace("Washington", "America", "USA");  // retorna true
    countries.replace("Canberra", "New Zealand", "Victoria");  // retorna false
    System.out.println("El resultado de ejecutar replace() en Countries:\n" + countries);
  }
}

输出结果

Countries:
{Canberra=Australia, Ottawa=Canada, Washington=America}
El resultado de ejecutar replace() en Countries:
{Canberra=Australia, Ottawa=Canada, Washington=USA}

En el ejemplo anterior, creamos un mapeo de cadenas llamado countries. Presta atención a esta línea,

countries.replace("Washington", "America", "USA");

Aquí, el método replace() incluye el parámetro opcional oldValue (América). Por lo tanto, se reemplaza el mapeo de la clave Washington al valor América con el nuevo valor USA.

pero tenga en cuenta que

countries.replace("Canberra", "New Zealand", "Victoria");

Aquí, en el mapeo de hash, la clave Canberra no está mapeada al valor New Zealand. Por lo tanto, el método replace() no reemplazará ningún valor.

notapodemos usar  Java HashMap clear()  método elimina todos los mapeos del mapeo de hash.

HashMap put() y replace()

En HashMap, la sintaxis de los métodos put() y replace() parece muy similar.

// sintaxis de put()
hashmap.put(key, value)
// sintaxis de replace()
hashmap.replace(key, value)

y, cuando el mapeo de hash contiene el mapeo especificadoclaveentonces, ambos métodos reemplazarán el valor asociado con la clave especificada.

pero, si el mapeo de hash no contiene el mapeo especificadola clave delpara cualquier mapeo, entonces

  • el método put() para la clave especificadaclaveyvalorinsertar nuevo mapeo

  • el método replace() devuelve null

ejemplo3:Métodos put() y replace() de HashMap

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // crear HashMap
    HashMap<Integer, String> languages1 = new HashMap<>();
    // insertar entradas en HashMap
    languages1.put(1, "Python");
    languages1.put(2, "JavaScript");
    //crear otro similar a languages1del HashMap
    HashMap<Integer, String> languages2 = new HashMap<>();
    //llevar todos los elementos de language1poner language2
    languages2.putAll(languages1);
    System.out.println("HashMap: " + languages1);
    // usar put()
    languages2.put(3, "Java");
    System.out.println("HashMap después de put():\n" + languages2);
    // usar replace()
    languages1.replace(3, "Java");
    System.out.println("HashMap después de replace():\n" + languages1);
  }
}

输出结果

HashMap: {1=Python, 2=JavaScript}
put()之后的HashMap:
{1=Python, 2=JavaScript, 3=Java}
HashMap 之后的HashMap():
{1=Python, 2=JavaScript}

在上面的示例中,我们创建了两个名为languages1和languages2的哈希映射。我们使用了HashMap putAll()方法,以便两个哈希映射具有相同的映射。

在此,哈希映射中不存在键3的映射。 因此,

  • put()方法将新的映射(3 = Java)添加到HashMap

  • replace()方法不执行任何操作

访问Java HashMap put()方法以了解有关添加条目的更多信息。

Java HashMap 方法