CodeGym/Java-Blog/Random-DE/HashMap getOrDefault-Methode in Java
Autor
John Selawsky
Senior Java Developer and Tutor at LearningTree

HashMap getOrDefault-Methode in Java

Veröffentlicht in der Gruppe Random-DE

Was ist die getOrDefault-Methode für HashMaps in Java?

„Die getOrDefault- Methode gibt den Wert zurück, der dem angegebenen Schlüssel in einer HashMap zugeordnet ist . Wenn dieser Schlüssel nicht vorhanden ist, wird ein Standardwert zurückgegeben.“
Die Klasse java.util.HashMap verfügt über die Methode getOrDefault , um eine zusätzliche Berechtigung zum Übergeben des Standardwerts zu gewähren. Der Standardwert kann in verschiedenen Situationen für unterschiedliche Zwecke verwendet werden. Die Verwendung und der Vergleich mit der einfachen Get-Methode werden später in diesem Beitrag erläutert.

Was ist der Header für die getOrDefault()-Methode?

Der reguläre Header für die getOrDefault- Methode ist wie folgt definiert.
hashMap.getOrDefault(Object key, Object defaultValue)

Übergebene Parameter

Der Methodenheader benötigt zwei Argumente. Sie sind unten zusammen mit ihren Datentypen aufgeführt.
  1. Der erste ist der angegebene Schlüssel des Objekttyps.
  2. Der andere Objekttyp ist der Parameter defaultValue, der für den Objektschlüssel als Methodenargument übergeben wird .

Funktionsweise der Methode getOrDefault()

In den folgenden zwei einfachen Schritten können Sie die Funktionsweise der getOrDefault()- Methode verstehen.
  1. getOrDefault (key, defaultValue) dient dazu, den Wert abzurufen , der dem Schlüssel in der HashMap entspricht .
  2. Wenn dem Schlüssel ein Wert zugeordnet ist , wird dieser Wert zurückgegeben. Wenn der Wert hingegen nicht verfügbar ist, wird der als Parameter an diese Methode übergebene defaultValue zurückgegeben.

Beispiel 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);
	}

}

Ausgang

Arbeitszeitplan: {Montag=Arbeitstag, Donnerstag=Arbeitstag, Freitag=Arbeitstag, Sonntag=Freier Tag, Mittwoch=Arbeitstag, Dienstag=Arbeitstag, Samstag=Freier Tag} Ist Sonntag ein Arbeitstag? Ruhetag Ist Weihnachten ein Arbeitstag? Nationalfeiertag Ist Ostern ein Werktag? Nationalfeiertag

Warum die Methode getOrDefault() und nicht die Methode get() verwenden?

Die einfache Methode get() in Java wird verwendet, um den Wert des angeforderten Schlüssels in der HashMap abzurufen . Wenn der Schlüssel gefunden wird, wird der Wert zurückgegeben. Falls der Schlüssel nicht gefunden wird, wird „null“ zurückgegeben. Die Methode getOrDefault() wird der einfachen Methode get vorgezogen, wenn erwartet wird, dass ein Standardwert zurückgegeben wird. Hier ist ein einfaches Beispiel für Ihr Verständnis.

Beispiel 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);
	}
}

Ausgang

Feiertage: {Sunday=true, Saturday=true} Ist Weihnachten ein Feiertag? wahr Ist Weihnachten ein Feiertag? Null
Sie können den Unterschied zwischen der getOrDefault- und der get- Methode erkennen . Wie in der Ausgabe angegeben, gibt die erste Methode den Standardwert zurück , wenn der Schlüssel nicht gefunden wird, während die zweite Methode null zurückgibt.

Abschluss

Am Ende dieses Beitrags müssen Sie mit der getOrDefault() -Methode einer HashMap vertraut sein . Es wird empfohlen, durch Übung zu lernen. Schauen Sie sich diesen Beitrag gerne noch einmal an, wenn Sie unterwegs nicht weiterkommen. Bis dahin üben Sie weiter und wachsen Sie weiter!
Kommentare
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Auf dieser Seite gibt es noch keine Kommentare