Heim >Java >javaLernprogramm >Wie kann ich HashMaps in Java unter Berücksichtigung unterschiedlicher Versionskompatibilität effizient initialisieren?

Wie kann ich HashMaps in Java unter Berücksichtigung unterschiedlicher Versionskompatibilität effizient initialisieren?

DDD
DDDOriginal
2024-12-09 08:28:10668Durchsuche

How Can I Efficiently Initialize HashMaps in Java, Considering Different Version Compatibility?

HashMaps direkt initialisieren: Ein wörtlicher Ansatz

Hintergrund

Das Erstellen von HashMaps kann das manuelle Hinzufügen von Schlüssel-Wert-Paaren erfordern. Dieser Vorgang kann zeitaufwändig und fehleranfällig sein. Verständlicherweise streben Entwickler nach einem schlankeren Ansatz.

Java 9 und höher

Ab Java 9 vereinfachen die folgenden Factory-Methoden die Kartenerstellung:

Map.of("a", "b", "c", "d"); // Up to 10 elements
Map.ofEntries(entry("a", "b"), entry("c", "d")); // Any number of elements

Diese Methoden erstellen unveränderliche Karten. Kopieren Sie veränderliche Karten wie folgt:

Map mutableMap = new HashMap<>(Map.of("a", "b"));

Java 8 und niedriger

Vor Java 9 war eine direkte Initialisierung nicht möglich. Es gibt jedoch Alternativen:

Anonyme Unterklasse (mit Vorsichtsmaßnahmen)

Map myMap = new HashMap<String, String>() {{
    put("a", "b");
    put("c", "d");
}};

Vorbehalte:

  • Führt eine zusätzliche Klasse ein, die zunimmt Ressourcenverbrauch.
  • Enthält Verweise auf das äußere Klassenobjekt und verhindert so Müll Sammlung.

Initialisierungsfunktion

Ein robusterer Ansatz, der die Einschränkungen anonymer Unterklassen vermeidet:

Map myMap = createMap();

private static Map<String, String> createMap() {
    Map<String, String> myMap = new HashMap<>();
    myMap.put("a", "b");
    myMap.put("c", "d");
    return myMap;
}

Schlussfolgerung

Für Java 9 Die Verwendung von Factory-Methoden wie Map.of und Map.ofEntries bietet die direkteste und effizienteste Methode zum Initialisieren von HashMaps. Für Java 8 und niedriger bietet der Initialisierungsfunktionsansatz jedoch eine Alternative, die die Fallstricke anonymer Unterklassen vermeidet.

Das obige ist der detaillierte Inhalt vonWie kann ich HashMaps in Java unter Berücksichtigung unterschiedlicher Versionskompatibilität effizient initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn