CodeGym /Blog Java /Random-ES /Método HashMap getOrDefault en Java
Autor
John Selawsky
Senior Java Developer and Tutor at LearningTree

Método HashMap getOrDefault en Java

Publicado en el grupo Random-ES

¿Cuál es el método getOrDefault para HashMaps en Java?

“El método getOrDefault devuelve el valor asignado a la clave especificada en un HashMap . Si esa clave no está presente, se devuelve un valor predeterminado”.
La clase java.util.HashMap viene con el método getOrDefault para brindar un privilegio adicional de pasar el valor predeterminado. El valor predeterminado se puede utilizar para diferentes propósitos en diversas situaciones. Su uso y comparación con el método de obtención simple se explicarán más adelante en la publicación.

¿Cuál es el encabezado del método getOrDefault()?

El encabezado regular para el método getOrDefault se define de la siguiente manera.

hashMap.getOrDefault(Object key, Object defaultValue)

Parámetros aprobados

El encabezado del método toma dos argumentos. Se enumeran junto con sus tipos de datos a continuación.
  1. La primera es la clave especificada del tipo de objeto.
  2. El otro tipo de objeto es el parámetro predeterminadoValor pasado para la clave del objeto como argumento del método.

Funcionamiento del método getOrDefault()

Puede comprender el funcionamiento del método getOrDefault() en los siguientes dos sencillos pasos.
  1. getOrDefault (key, defaultValue) está diseñado para obtener el valor correspondiente a la clave en el HashMap .
  2. Si hay un valor asociado con la clave , se devuelve ese valor . Por otro lado, si el valor no está disponible, se devuelve el valor predeterminado pasado como parámetro a este método.

Ejemplo 1


import java.util.HashMap;

public class Driver1{

	public static void main(String[] args) {

		// Declare a HashMap
		HashMap weekDays = new HashMap<>();

		// Add data to the HashMap
        weekDays.put("Monday", "Working Day");
        weekDays.put("Tuesday", "Working Day");
        weekDays.put("Wednesday", "Working Day");
        weekDays.put("Thursday", "Working Day");
        weekDays.put("Friday", "Working Day");
        weekDays.put("Saturday", "Off Day");
        weekDays.put("Sunday", "Off Day");
        
        // Print the data in the HashMap
        System.out.println("Working Schedule : " + weekDays + "\n");
              
  
        // Check if the given key is present in the Map
        // IF yes, its value will be returned
        String sunday = weekDays.getOrDefault("Sunday", "No Announcements Yet.");
        System.out.println("Is Sunday a working day?  " + sunday);
        
        // IF not, the default value passed will be returned
        String christmas = weekDays.getOrDefault("Christmas", "National Holiday");
        System.out.println("Is Christmas a working day?  " + christmas);

        // Key not present in the HashMap
        // Default Value returned
        String easter = weekDays.getOrDefault("Easter", "National Holiday");
        System.out.println("Is Easter a working day?  " + easter);
	}

}

Producción

Horario de trabajo: {lunes = día laborable, jueves = día laborable, viernes = día laborable, domingo = día libre, miércoles = día laborable, martes = día laborable, sábado = día libre} ¿Es el domingo un día laborable? Día libre ¿Es la Navidad un día laborable? Fiesta Nacional ¿La Semana Santa es un día laborable? Fiesta Nacional

¿Por qué usar el método getOrDefault() y no get()?

El método get() simple en Java se usa para obtener el valor de la clave solicitada en HashMap . Si se encuentra la clave, se devuelve el valor. En caso de que no se encuentre la clave, se devuelve "null". Se prefiere el método getOrDefault() al método get simple cuando se espera que se devuelva un valor predeterminado . Aquí hay un ejemplo simple para su comprensión.

Ejemplo 2


import java.util.HashMap;
public class Driver2{

	public static void main(String[] args) {

	  HashMap<Object, Boolean> holidays = new HashMap<>();

	  // Add data to the HashMap
        holidays.put("Saturday",  true);
        holidays.put("Sunday", true);
        
        // Print the data in the HashMap
        System.out.println("Holidays: " + holidays + "\n");

        // Key not present, default value returned
        Object christmas = holidays.getOrDefault("Christmas", true);
        System.out.println("Is Christmas a holiday?  " + christmas);
        
        // Key not present, null returned
        christmas = holidays.get("Christmas");
        System.out.println("Is Christmas a holiday?  " + christmas);
	}
}

Producción

Días festivos: {Domingo=verdadero, Sábado=verdadero} ¿Es la Navidad un día festivo? cierto ¿Es la Navidad una fiesta? nulo
Puede ver la diferencia entre getOrDefault y el método get . Tal como se muestra en la salida, el primer método devuelve el valor predeterminado si no se encuentra la clave, mientras que el último devuelve un valor nulo.

Conclusión

Al final de esta publicación, debe estar familiarizado con el método getOrDefault() de HashMap . Se recomienda aprender con la práctica. Siéntete libre de revisar esta publicación nuevamente si te quedas atascado en el camino. Hasta entonces, ¡sigue practicando y sigue creciendo!
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION