Java-Dictionary

Rashmi Patidar 12 Oktober 2023
Java-Dictionary

In der Sprache Java wird das Dictionary durch eine Datenstruktur namens Map-Schnittstelle dargestellt. Die Datenstruktur Map wird verwendet, um Daten in Schlüssel-Wert-Paaren darzustellen. Die Map ist eine Schnittstelle, die alle Schlüssel und die dazugehörigen Werte festhält. Ein Benutzer kann den Wert basierend auf einem eindeutigen Schlüssel abrufen. Die Schnittstelle Map enthält folgende Eigenschaften:

  1. Alle in der Map vorhandenen Schlüssel sind einzigartig.
  2. Es kann einen eindeutigen Schlüssel geben, der einem oder mehreren Werten entspricht.
  3. Schlüssel sind die Entitäten, die nicht null sind.

Unten ist der Codeblock, der die Verwendung eines Dictionaries oder der Karte in der Sprache Java demonstriert.

import java.util.HashMap;
import java.util.Map;

public class Dictionary {
  public static void main(String[] args) {
    System.out.println("Dictionary in Java");
    System.out.println("Using HashMap ");
    Map<String, String> map = new HashMap<>();
    map.put("1", "Letters with alphabetical Order with key A");
    map.put("2", "Letters with alphabetical Order with key B");
    System.out.println(map.get("2"));
  }
}

Die Map ist eine getrennt von der Framework-Hierarchie Collection vorhandene Schnittstelle.

Die Map ist im java.util-Paket enthalten und zeigt, wie ein Schlüssel den Werten zugeordnet wird. Es kann mehrere Implementierungen für eine Karte geben, nämlich:

  1. HashMap
  2. LinkedHashMap
  3. Hashtable

Die Verwendung jedes einzelnen kann je nach den Anforderungen der Benutzer für die Implementierung variieren.

Im obigen Code-Schnipsel wird die HashMap-Implementierung verwendet. Es ist die Standard- und weit verbreitete Klasse in der Java-Sprache. Der Unterschied zwischen allen drei Typen wird unten definiert.

HashMap wird in Java 1.2 eingeführt, während Hashtable eine Legacy-Klasse ist. Es ist Thread-sicher, und daher sind gleichzeitige Operationen zwischen mehreren Threads zulässig, wodurch die Konsistenz des Codes gewahrt wird. Aber die HashMap sind nicht Thread-sicher und erlauben keine Parallelität.

Aufgrund der Thread-sicheren Natur von HashMap ist es in der Leistung schneller als die Hashtable. Außerdem ist HashMap ausfallsicher und löst ConcurrencyException aus, wenn seine Instanz von mehreren Threads gleichzeitig manipuliert wird. Im Gegensatz dazu wirkt Hashtable ausfallsicher. Der Anwendungsfall von LinkedHashMap liegt vor, wenn ein Benutzer den Anzeigenauftrag speichern möchte.

Die Instanz Map wird mit der Klasse HashMap im obigen Codeblock erstellt. Die Operationen wie get und put werden verwendet, um die spezifischen Werte aus der Instanz zu speichern und abzurufen. Die Methode put verwendet zwei Parameter, die den Schlüssel und seinen Wert darstellen.

Intern wird der Schlüssel mit der Funktion containsKey() zuerst ausgewertet, wenn er im Map-Objekt vorhanden ist. Wenn es als wahr ausgewertet wird, wird der aktuelle Wert des Schlüssels durch den neuen Wert ersetzt. Die Methode wirft UnsupportedOperationException, wenn die definierte Operation von der Map mit dem angegebenen Schlüssel nicht unterstützt wird.

Die ClassCastException if key oder value verhindert das Speichern des Schlüssels, NullPointerException wenn der angegebene Key oder Value null ist und die Map keine null Schlüssel oder Werte zulässt. IllegalArgumentException, wenn eine Eigenschaft des Schlüssels oder Werts verhindert, dass er in der Map gespeichert wird.

Sobald der Schlüssel in die Map eingesteckt ist, wird er mit der get-Funktion abgerufen. Die Funktion get verwendet einen einzigen Parameter, der den eindeutigen Schlüssel darstellt. Es wirft ClassCastException und NullPointerException, wenn der Schlüssel unpassend ist oder wenn der angegebene Schlüssel null ist.

Unten ist die Ausgabe der Kartenschnittstelle mit der Klasse HashMap.

Dictionary in Java Using HashMap Letters with alphabetical Order with key B
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn