¿Cómo reemplazar un valor para la clave dada en el TreeMap?

TreeMap en Java se usa para implementar la interfaz Map y NavigableMap junto con la clase AbstractMap . El mapa se ordena según el orden natural de sus claves, o mediante un comparador proporcionado en el momento de la creación del mapa, según el constructor que se utilice. 

  • Es la clase de implementación de la interfaz Map.
  • Ordena el elemento en base a las claves.
  • No mantiene el orden de inserción.

Formas en que podemos reemplazar el valor usando la clave dada:

  1. Usando el método put() de la clase TreeMap
  2. Usando el método replace() de la clase TreeMap
  3. Usando el método ComputeIfPresent() de la clase TreeMap

1. método put() :

Sintaxis:

Tree_Map.put(key, value)

Parámetros: El método toma dos parámetros, ambos son del tipo Objeto del TreeMap.

  • clave: Esto se refiere al elemento clave que debe insertarse en el Mapa para el mapeo.
  • valor: Esto se refiere al valor al que se asignaría la clave anterior.

Valor devuelto: si se pasa una clave existente, se devuelve el valor anterior. Si se pasa un par nuevo, se devuelve NULL.

  • Usando el método put, podemos reemplazar el valor de la clave que ya está presente, pero si la clave no está presente, crea un nuevo registro.

Java

// Java program  to replace a value for
// the given key in the TreeMap
 
import java.io.*;
import java.util.TreeMap;
class GFG {
    public static void main (String[] args) {
         
      TreeMap<String,Integer> gfg=new TreeMap<>();
       
      //adding values to the treemap
       
      gfg.put("dsa",99);
      gfg.put("interview",98);
      gfg.put("fang",80);
       
      //for the fang key we will change the value from 80 to 99
      //using put method
      gfg.put("fang",99);
       
      for(String key: gfg.keySet()){
      System.out.println(key+" , "+gfg.get(key));
      }
    }
}
Producción

dsa , 99
fang , 99
interview , 98

2. Usando el método replace() :

  • El método replace() reemplaza el valor de la clave dada, pero hay una diferencia entre reemplazar y poner.
  • En caso de reemplazo si la clave no está presente, no crea un nuevo registro.

Sintaxis:

public V replace(K key, V value)

Parámetros: Este método acepta dos parámetros:

  • clave: que es la clave del elemento cuyo valor debe ser reemplazado.
  • valor: que es el nuevo valor que debe mapearse con la clave proporcionada.

Valor devuelto: este método devuelve el valor anterior asociado con la clave especificada. Si no hay tal clave asignada, devuelve nulo , si la implementación admite el valor nulo.

Excepciones: este método arrojará:

  • NullPointerException si la clave o el valor especificado es nulo, y este mapa no permite claves o valores nulos y
  • IllegalArgumentException si alguna propiedad de la clave o valor especificado impide que se almacene en este mapa.

Java

// Java program  to replace a value
// for the given key in the TreeMap
 
import java.io.*;
import java.util.TreeMap;
class GFG {
    public static void main (String[] args) {
         
      TreeMap<String,Integer> gfg=new TreeMap<>();
       
      //adding values to the treemap
       
      gfg.put("dsa",99);
      gfg.put("interview",98);
      gfg.put("fang",80);
       
      //here we are using dsa key to change its value from 99 to 100
      gfg.replace("dsa",100);
       
      for(String key: gfg.keySet()){
      System.out.println(key+" , "+gfg.get(key));
      }
    }
}
Producción

dsa , 100
fang , 80
interview , 98

3. método computarSiPresente() :

  • Está presente en Java 8. El método computeIfPresent(Key, BiFunction) de la clase HashMap que le permite calcular el valor de la asignación para una clave específica si la clave ya está asociada con un valor (o está asignada a un valor nulo).

Java

// Java program  to replace a value
// for the given key in the TreeMap
 
import java.io.*;
import java.util.TreeMap;
class GFG {
    public static void main (String[] args) {
         
      TreeMap<String,Integer> gfg=new TreeMap<>();
       
      //adding values to the treemap
       
      gfg.put("dsa",99);
      gfg.put("interview",98);
      gfg.put("fang",80);
       
      //here we are using interview key to change its value from 98 to 50
      gfg.computeIfPresent("interview",(k,v)->50);
       
      for(String key: gfg.keySet()){
      System.out.println(key+" , "+gfg.get(key));
      }
    }
}
Producción

dsa , 99
fang , 80
interview , 50

Publicación traducida automáticamente

Artículo escrito por rajatagrawal5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *