¿Cuál es el método getOrDefault para HashMaps en Java?
¿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.- La primera es la clave especificada del tipo de objeto.
- 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.- getOrDefault (key, defaultValue) está diseñado para obtener el valor correspondiente a la clave en el HashMap .
- 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.
GO TO FULL VERSION