Heim  >  Artikel  >  Java  >  Wie funktioniert HashTable in Java?

Wie funktioniert HashTable in Java?

王林
王林nach vorne
2023-08-19 18:53:081107Durchsuche

Wie funktioniert HashTable in Java?

Die Hashtable-Klasse ist Teil des Java Collection Framework, das sein Element in Schlüssel-Wert-Paaren in einer Hash-Tabelle speichert. Der Schlüssel ist ein Objekt, das zum Abrufen und Empfangen von damit verbundenen Werten verwendet werden kann Einige Ähnlichkeiten zwischen einer Hashtable- und einer HashMap-Klasse, aber die Hash-Tabelle ist synchronisiert. Außerdem müssen ihre Schlüssel mit Werten verknüpft sein, sie dürfen nicht null sein. Ziel dieses Artikels ist es, zu erklären, wie die Hash-Tabelle in Java funktioniert

Wie Hashtable in Java funktioniert

Wir können uns eine Hashtable als eine Reihe von Buckets vorstellen, wobei jeder Bucket eine Liste von Einträgen enthält. Ein Eintrag besteht aus einem Schlüssel und einem Wert. Wir geben einen Schlüssel und die Werte an, die diesem Schlüssel zugeordnet werden können. Der Schlüssel wird dann gehasht, um einen Hash-Code zu generieren, der weiter als Index in der Tabelle verwendet wird, in der der Wert gespeichert ist. Die Funktion, die dabei hilft, die Position des Werts aus dem Hash-Code zu ermitteln, wird Hash-Funktion genannt. Es gibt immer einen positiven ganzzahligen Wert zurück, der als Hash-Code bezeichnet wird. Mehrere Objekte können nach der Auswertung durch eine integrierte Methode namens „equals()“ denselben ganzzahligen Wert erhalten. Allerdings haben ähnliche Objekte immer den gleichen Hashcode.

Formel zur Indexzuweisung

indexNumber = hashNumber % totalBuckets

Hier ist „%“ der Modulo-Operator, der den Rest zurückgibt

Lassen Sie uns ein Beispiel geben, um die Verwendung der obigen Formel zu zeigen -

Q Angenommen, wir erhalten ein Element namens XYZ mit einem Hashwert von 17 und einer Gesamtsumme von Die Anzahl der verfügbaren Buckets beträgt 5. Finden Sie dann heraus, unter welcher Indexnummer es gespeichert wird?

Lösung − 17 % 5 = 2 Daher erhält es die Indexnummer 2.

Kollision in Hashtable

Wie bereits erwähnt, können mehrere Objekte denselben Hashcode erhalten, was zu einer sogenannten Kollision führt. Sie tritt auf, wenn zwei oder mehr Schlüssel denselben Hashwert haben und demselben resultierenden Bucket zugeordnet sind, was jedoch zu einer langsamen Leistung führt funktionale Verwirrung.

Syntax zum Deklarieren von Hashtable

Hashtable<TypeOfKey, TypeOfValue> nameOfTable = new Hashtable<>();

Methode

  • Der erste Schritt besteht darin, das Paket „java.util“ zu importieren, damit wir die Hashtable-Klasse verwenden können

  • Definieren Sie eine Instanz der Hashtable-Klasse und hängen Sie einige Objekte mit a daran an Integrierte Methode mit dem Namen „put()“.

  • Nun verwenden Sie eine for-each-Schleife und die darin enthaltene Methode „keySet()“, um auf alle Schlüssel zuzugreifen

    Der mit dem Schlüssel verknüpfte Wert.
Beispiel 1

Das folgende Beispiel zeigt, wie wir eine Hashtable in Java implementieren können.

import java.util.*;
public class Table {
   public static void main(String[] args) {
      Hashtable<String, Integer> workers = new Hashtable<>();
      
      // Adding elements in the workers table
      workers.put("Vaibhav", 4000);
      workers.put("Ansh", 3000);
      workers.put("Vivek", 1500);
      workers.put("Aman", 2000);
      workers.put("Tapas", 2500);
      
      // printing details workers table
      System.out.println("Elements in the given table: ");
      for (String unKey : workers.keySet()) {
         System.out.println("Name: " + unKey + ", Salary: " + workers.get(unKey));
      }
   }
}
Ausgabe

Elements in the given table:
Name: Aman, Salary: 2000
Name: Ansh, Salary: 3000
Name: Tapas, Salary: 2500
Name: Vivek, Salary: 1500
Name: Vaibhav, Salary: 4000

Beispiel 2

Im folgenden Beispiel rufen wir die Werte einer Hashtabelle mithilfe der integrierten Methode „get()“ ab. Diese Methode akzeptiert einen Schlüssel und gibt den entsprechenden Wert zurück.

import java.util.*;
public class Table {
   public static void main(String[] args) {
      Hashtable<String, Integer> workers = new Hashtable<>();
      
      // Adding elements in the workers table
      workers.put("Vaibhav", 4000);
      workers.put("Ansh", 3000);
      workers.put("Vivek", 1500);
      workers.put("Aman", 2000);
      workers.put("Tapas", 2500);
      
      // printing details workers table one by one
      System.out.println("Value stored at key Ansh: " + workers.get("Ansh"));
      System.out.println("Value stored at key Vivek: " + workers.get("Vivek"));
      System.out.println("Value stored at key Aman: " + workers.get("Aman"));
   }
}

Ausgabe

Value stored at key Ansh: 3000
Value stored at key Vivek: 1500
Value stored at key Aman: 2000

Fazit

Wir haben diesen Artikel mit der Definition der Hashtable-Klasse begonnen und im nächsten Abschnitt anhand eines Beispiels erklärt, wie sie intern funktioniert. Später haben wir die praktische Implementierung von Hashtable anhand von Java-Beispielprogrammen besprochen.

Das obige ist der detaillierte Inhalt vonWie funktioniert HashTable in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen