CodeGym /Blogue Java /Random-PT /Método HashMap getOrDefault em Java
John Squirrels
Nível 41
San Francisco

Método HashMap getOrDefault em Java

Publicado no grupo Random-PT

Qual é o método getOrDefault para HashMaps em Java?

“O método getOrDefault retorna o valor mapeado para a chave especificada em um HashMap . Se essa chave não estiver presente, um valor padrão será retornado.”
A classe java.util.HashMap vem com o método getOrDefault para dar um privilégio extra de passar o valor padrão. O valor padrão pode ser usado para diferentes propósitos em várias situações. Seu uso e comparação com o método get simples serão explicados posteriormente no post.

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.
  1. A primeira é a chave especificada do tipo Object.
  2. 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.
  1. O getOrDefault(key, defaultValue) foi projetado para obter o valor correspondente à chave no HashMap .
  2. 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.

Conclusão

Ao final deste post, você deve estar familiarizado com o método getOrDefault() de um HashMap . Você é aconselhado a aprender pela prática. Sinta-se à vontade para verificar este post novamente se você ficar preso ao longo do caminho. Até então, continue praticando e continue crescendo!
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION