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

Tutorial Básico de Java

Controle de fluxo do Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Fila (Queue)

Java Conjunto de Mapas (Map)

Java Conjunto (Set)

Java Entrada e Saída (I/O)

Java Reader/Writer

Outros tópicos do Java

Uso e exemplo do Java HashMap replace()

Métodos HashMap Java

O método replace() do Java HashMap substitui o mapeamento da chave especificada para o novo valor no hashmap

A sintaxe do método replace() é:

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

Parâmetros do replace()

  • key  - A chave a ser substituída no mapeamento

  • oldValue (Opcional)- O valor a ser substituído no mapeamento

  • newValue - O oldValue é substituído por esse valor

Retorno do replace()

 O método replace() do HashMap substitui o mapeamento e retorna:

  • Se o parâmetro opcional oldValue não existir, é o valor anterior associado à chave especificada

  • Se existir o parâmetro opcional oldValue, é true

atenção:Se o valor especificado mapeado para null ou a chave não existe no hashmap, o método retorna null.

exemplo1:Substitui a entrada do HashMap

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // criando HashMap
    HashMap<Integer, String> languages = new HashMap<>();
    //adicionar entrada ao HashMap
    languages.put(1, "Python");
    languages.put(2, "English");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: "", + languages);
    //substituir chave2do mapeamento
    String value = languages.replace(2, "Java");
    System.out.println("valor substituído: " + value);
    System.out.println("HashMap atualizado: " + languages);
  }
}

Resultados de saída

HashMap: {1=Python, 2=English, 3=JavaScript}
valor substituído: English
HashMap atualizado: {1=Python, 2=Java, 3=JavaScript}

No exemplo acima, criamos um mapeamento chamado languages. Aqui, usamos o método replace() para substituir a chave1(1substitui a entrada com valor antigo (English) por um valor especificado Java.

Aqui, o método replace() não possui parâmetro oldValue opcional. Portanto, ele retorna o valor antigo (English).

exemplo2HashMap com valor antigo replace()

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    //criando HashMap
    HashMap<String, String> countries = new HashMap<>();
    //inserir itens no HashMap
    countries.put("Washington", "America");
    countries.put("Ottawa", "Canada");
    countries.put("Canberra", "Australia");
    System.out.println("Countries:\n" + countries);
    // substitui o mapeamento {Washington = America}
    countries.replace("Washington", "America", "USA");  // retorna true
    countries.replace("Canberra", "New Zealand", "Victoria");  // retorna false
    System.out.println("Countries: após a execução de replace():\n" + countries);
  }
}

Resultados de saída

Countries:
{Canberra=Australia, Ottawa=Canada, Washington=America}
Countries: após a execução de replace()
{Canberra=Australia, Ottawa=Canada, Washington=USA}

No exemplo acima, criamos um mapeamento chamado countries. Observe esta linha,

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

aqui, o método replace() inclui o parâmetro opcional oldValue (America). Portanto, o mapeamento da chave Washington para o valor America será substituído pelo novo valor USA.

mas, note que

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

aqui, na mapeamento hash, a chave Canberra não está mapeada para o valor New Zealand. Portanto, o método replace() não substituirá nenhum valor.

atençãopodemos usar  HashMap clear() Java  métodos removem todos os mapeamentos do mapeamento hash.

HashMap put() e replace()

no HashMap, a sintaxe dos métodos put() e replace() parece muito semelhante.

// sintaxe do put()
hashmap.put(key, value)
// sintaxe do replace()
hashmap.replace(key, value)

e, quando o mapeamento hash contiver o especificadochaveentão essas duas métodos substituirão o valor associado à chave especificada.

mas, se o mapeamento hash não contiver o mapeamento especificadoda chavepara qualquer mapeamento, então

  • o método put() para o especificadochaveevalorinserindo novo mapeamento

  • o método replace() retorna null

exemplo3:HashMap put() e métodos replace()

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // criando HashMap
    HashMap<Integer, String> languages1 = new HashMap<>();
    // inserindo itens no HashMap
    languages1.put(1, "Python");
    languages1.put(2, "JavaScript");
    //criando outro semelhante ao languages1do HashMap
    HashMap<Integer, String> languages2 = new HashMap<>();
    //removendo todos os itens de language1inserindo language2
    languages2.putAll(languages1);
    System.out.println("HashMap: "", + languages1);
    // usando put()
    languages2.put(3, "Java");
    System.out.println("HashMap após put():\n" + languages2);
    // usando replace()
    languages1.replace(3, "Java");
    System.out.println("HashMap após replace():\n" + languages1);
  }
}

Resultados de saída

HashMap: {1=Python, 2=JavaScript}
HashMap após o put():
{1=Python, 2=JavaScript, 3=Java}
HashMap após o HashMap():
{1=Python, 2=JavaScript}

No exemplo acima, criamos dois chamados languages1e languages2do mapeamento de hash. UsamosHashMap putAll()Método, para que dois mapeamentos de hash tenham o mesmo mapeamento.

Aqui, não existe a chave no mapeamento de hash3Mapeamento. Portanto,

  • O método put() adiciona um novo mapeamento(3 = Java) adicionarpara HashMap

  • O método replace() não executa nenhuma operação

AcessarHashMap put() JavaMétodos para obter mais informações sobre a adição de itens.

Métodos HashMap Java