Zum Hauptinhalt springen
Veröffentlicht am

Hashtable-Klasse in Java

Teilen:

Einführung

Die Hashtable ist eine der ersten Datenstrukturen, die Java bereitstellt, und ist seit seiner allerersten Version vorhanden. Die Fähigkeit, Schlüssel-Wert-Paare zu speichern, macht sie für viele Anwendungen unverzichtbar, die eine effiziente Datenspeicherung und -abfrage benötigen.

Eigenschaften der Hashtable-Klasse

  1. Synchronisiert: Im Gegensatz zu HashMap ist die Hashtable thread-sicher, was bedeutet, dass mehrere Threads eine einzige Hashtable gemeinsam nutzen können, ohne dass eine zusätzliche Synchronisierung erforderlich ist.
  2. Erlaubt keine Null-Werte: In der Hashtable können weder Schlüssel noch Werte null sein, was ein wesentlicher Unterschied zu anderen Datenstrukturen wie HashMap ist.
  3. Effizienz: Durch eine Hashing-Technik garantieren Hashtables nahezu konstante Zugriffszeiten, was das Abrufen von Werten extrem schnell macht.
  4. Kapazität und Ladefaktor: Die Hashtable besitzt einen Konstruktor, der sowohl die Anfangskapazität als auch den Ladefaktor akzeptiert. Dadurch lässt sich die Tabelle hinsichtlich Größe und Effizienz optimieren.

Wichtigste Methoden

Neben den grundlegenden Einfüge- und Abrufmethoden bietet die Hashtable eine Vielzahl nützlicher Methoden:

  • clear(): Leert die Tabelle.
  • contains(): Prüft, ob ein Wert vorhanden ist.
  • containsKey(): Prüft, ob ein bestimmter Schlüssel vorhanden ist.
  • containsValue(): Ähnlich wie contains(), aber in seiner Absicht klarer.
  • get(): Ruft einen Wert anhand des angegebenen Schlüssels ab.
  • isEmpty(): Prüft, ob die Tabelle leer ist.
  • keys(): Gibt eine Aufzählung der Schlüssel in der Tabelle zurück.
  • size(): Gibt die Anzahl der Schlüssel-Wert-Paare in der Tabelle zurück.
package com.caffeinealgorithm.programaremjava;

import java.util.Hashtable;

public class HashtableKlasse {
  private Hashtable<String, Integer> personen = new Hashtable<>();

  public void Run() {
    personen.put("Nelson Silva", 28);
    personen.put("Larissa Fernandes", 37);
    personen.put("Pedro Henrique", 52);
    personen.put("Raquel Soares", 68);

    personen.replace("Pedro Henrique", 100);
    personen.remove("Larissa Fernandes");
    // personen.clear();

    System.out.printf("Namen der Personen: %s\n", personen.keySet());
    System.out.printf("Alter der Personen: %s", personen.values());
  }
}

/*
  Namen der Personen: [Nelson Silva, Raquel Soares, Pedro Henrique]
  Alter der Personen: [28, 68, 100]
*/

Einsatzgebiete

Aufgrund ihrer synchronisierten Natur ist die Hashtable ideal für Anwendungen, bei denen mehrere Threads gleichzeitig auf Daten zugreifen und diese ändern könnten. Sie wird auch häufig in Anwendungen eingesetzt, die hohe Abfrageraten und niedrige Einfüge-/Aktualisierungsraten erfordern.

Fazit

Die Hashtable-Klasse und ihre Feinheiten zu beherrschen ist für Java-Entwickler grundlegend. Diese Datenstruktur hat die Bewährungsprobe der Zeit bestanden und ist in vielen Programmierszenarien nach wie vor relevant. Zeit in das Verständnis ihrer Funktionsweise und Eigenschaften zu investieren kann sich in effizienterem und robusterem Code in deinen Anwendungen auszahlen.

Happy coding!