Qual é o método getOrDefault para HashMaps em Java?
Qual é o cabeçalho do método getOrDefault()?
O cabeçalho normal para o método getOrDefault é definido da seguinte forma.hashMap.getOrDefault(Object key, Object defaultValue)
Parâmetros aprovados
O cabeçalho do método recebe dois argumentos. Eles são listados junto com seus tipos de dados abaixo.- A primeira é a chave especificada do tipo Object.
- O outro tipo de objeto é o parâmetro defaultValue passado para a chave do objeto como o argumento do método.
Funcionamento do método getOrDefault()
Você pode entender o funcionamento do método getOrDefault() nas duas etapas simples a seguir.- O getOrDefault(key, defaultValue) foi projetado para obter o valor correspondente à chave no HashMap .
- Se houver um valor associado à chave , esse valor será retornado. Por outro lado, se o valor não estiver disponível, retorna-se o defaultValue passado como parâmetro para este método.
Exemplo 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);
}
}
Saída
Horário de Trabalho: {Segunda-feira=Dia útil, Quinta-feira=Dia útil, Sexta-feira=Dia útil, Domingo=Dia de folga, Quarta-feira=Dia útil, Terça-feira=Dia útil, Sábado=Dia de folga} Domingo é dia útil? Dia de folga O Natal é um dia de trabalho? Feriado Nacional A Páscoa é um dia útil? Feriado nacional
Por que usar o método getOrDefault() e não get()?
O método get() simples em Java é usado para obter o valor da chave solicitada no HashMap . Se a chave for encontrada, o valor é retornado. Caso a chave não seja encontrada, “nulo” é retornado. O método getOrDefault() é preferível ao método get simples quando se espera que um valor padrão seja retornado. Aqui está um exemplo simples para sua compreensão.Exemplo 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);
}
}
Saída
Feriados: {domingo=verdadeiro, sábado=verdadeiro} O Natal é feriado? verdade Natal é feriado? nulo
Você pode ver a diferença entre o getOrDefault e o método get . Conforme impresso na saída, o primeiro método retorna o valor padrão se a chave não for encontrada enquanto o último retorna nulo.
GO TO FULL VERSION