Hashtable (Paartabelle)

Previous  Next

 

 

 

19.02.2010

Hashtable (Paartabelle)

 

Die Hashtable (Schlüssel-Wert-Tabelle) ist ähnlich wie die Liste eine einfache Datenstruktur, mit der sich beliebig viele Werte speichern lassen. Anders als bei der Liste besitzen die Einträge einer Hashtable keinen Index, sondern einen individuellen Schlüssel über den der Zugriff auf den Wert erfolgt. Die Reihenfolge der Werte spielt somit keine Rolle. Bei der Hashtable kann nicht nur der Wert, sondern auch der Schlüssel ein fester Wert, eine Variable, Konstante oder ein Objekt sein.

 

Hashtables enorm hilfreich wenn es darum geht, Werte zu verarbeiten, die intern in einer anderen Form verarbeitet werden als sie extern z.B. auf der Oberfläche dargestellt werden oder wenn Werte bestimmten Oberflächen-Elementen zugewiesen werden sollen, z.B. eine Rechnungsnummer zu einem bestimmten Text-Container auf der Oberfläche oder in einem Report. Zudem lassen sich mit Hilfe einer Hashtable gleich mehrere Werte auf einmal übergeben, obwohl nur 1 Parameter (Übergabewert) vorgesehen ist, was z.B. beim Aufruf eines neuen Fensters oder eines Reports sehr vorteilhaft sein kann.

 

clip0537

 

 

» Objekt der Klasse hmtoggle_plus1 XdevHashtable | XDEV NLS: XdevPaartabelle «

Die Hashtable ist ein Objekt im Speicher, das mit Hilfe einer Variable angesprochen wird. Bei der Definition wird ein Hashtable-Objekt von der XDEV-Klasse hmtoggle_plus1 XdevHashtable | XDEV NLS: XdevPaartabelle erzeugt.

 

 

» Keine Dimensionierung nötig «

Die Hashtable kann grundsätzlich beliebig viele Einträge sowie Werte und Schlüssel jeden Typs aufnehmen. Eine Dimensionierung ist jedoch nicht notwendig, da die Hashtable den benötigten Speicher automatisch reserviert.

 

 

» Zugriff mit Methoden «

Der Zugriff auf die Hashtable erfolgt immer mit Hilfe spezieller Methoden, die Ihnen die XDEV-Klasse hmtoggle_plus1 XdevHashtable | XDEV NLS: XdevPaartabelle zur Verfügung stellt, z.B. für das Hinzufügen oder Löschen eines Wertes.

 

hmtoggle_plus1XDEV Object Language

1

2

XdevHashtable tabelle = createHashtable( );

tabelle.put("COL32","Titansilber");

hmtoggle_plus1XDEV Basic

1

2

XdevHashtable tabelle = createHashtable( )

tabelle.put("COL32","Titansilber")

hmtoggle_plus1XDEV NLS

1

2

XdevPaarTabelle tabelle = erzeugePaarTabelle( );

tabelle\setze("COL32","Titansilber")

 

Tipp: Eine Übersicht über alle Methoden der Hashtable erhalten Sie über die Auto-Vervollständigung des Code-Editors. Definieren Sie dazu eine Hashtable, geben Sie dann in der nächsten Codezeile die Hashtable-Variable ein und unmittelbar danach einen hmtoggle_plus1 Punkt | XDEV NLS: Backslash.

 

 

Beispiele für den Umgang mit Listen:
 

Umgang mit Listen

Beispiele

Hashtable erzeugen

Eine Liste wird nicht wie eine Virtuelle Tabelle per Assistenten angelegt, sondern wie eine gewöhnliche Variable im Code definiert. Bei der Definition muss der Listen-Variable sofort eine neue, leere Liste zugewiesen werden, welche mit dem Schlüsselwort hmtoggle_plus1 create | XDEV NLS: Erzeuge erzeugt wird. Dabei wird ein Objekt von der Klasse hmtoggle_plus1 XdevList | XDEV NLS: XdevListe erzeugt. Der Zugriff erfolgt dann mit Hilfe einer Variable, die auf das  jeweilige Listen-Objekt im Speicher zeigt.

 

1

XdevHashtable tabelle = createHashtable( );

1

XdevHashtable tabelle = createHashtable( )

1

XdevPaarTabelle tabelle = erzeugePaarTabelle( );

 

Wert hinzufügen

Mit Hilfe der Methode hmtoggle_plus1 put( ) | XDEV NLS: setze ( ) lässt sich der Hashtable ein Schlüssel-Wert-Paar hinzufügen, auch Objekte. Der Zugriff auf den Wert erfolgt immer über den Schlüssel, der deshalb eindeutig sein muss.

 

1

2

XdevHashtable tabelle = createHashtable( );

tabelle.put("COL32","Titansilber");

1

2

XdevHashtable tabelle = createHashtable( )

tabelle.put("COL32","Titansilber")

1

2

XdevPaarTabelle tabelle = erzeugePaarTabelle( );

tabelle\setze("COL32","Titansilber")

 

Wert lesen

Mit Hilfe der Methode hmtoggle_plus1 get( ) | XDEV NLS: hole ( ) können Sie Werte aus der Liste auslesen. Der Zugriff auf den Wert erfolgt immer durch die Angabe des Index.

 

1

2

String wert;

wert = tabelle.get("COL32");

1

2

String wert

wert = tabelle.get("COL32")

1

2

Zeichenkette wert

wert = tabelle\hole("COL32")

 

Wert löschen

Mit der Methode hmtoggle_plus1 remove( ) | XDEV NLS: lösche ( ) können Sie Werte aus der Liste entfernen. Der zu löschende Wert wird mit Hilfe seines Index bestimmt. Nach dem Löschen erhalten alle nachfolgenden Werte einen neuen, um den Wetrt 1 reduzierten Index, sodass der Index der Liste wieder lückenlos ist.

 

1

tabelle.remove("COL32");

1

tabelle.remove("COL32")

1

tabelle\lösche("COL32")

 

Größe der Hashtable ermitteln

Mit der Methode hmtoggle_plus1 size( ) | XDEV NLS: größe ( ) lässt sich die Größe der Liste, bzw. die Anzahl der Werte in der Liste ermitteln.

 

1

2

Int groesse;

groesse = tabelle.size();

1

2

Int groesse

groesse = tabelle.size()

1

2

Ganzzahl groesse

groesse = tabelle\größe ( )

 

Schlüssel auslesen

 

Die Hashtable besitzt einen internen Zeiger, der auf den aktuellen Schlüssel zeigt. Mit Hilfe der Methode hmtoggle_plus1 getKey( ) | XDEV NLS: holeSchlüssel ( ) können Sie den Schlüssel auslesen, auf den der Hashtable-Zeiger gerade zeigt.

 

1

2

String schlüssel;

schlüssel = tabelle.getKey();

1

2

String schlüssel

schlüssel = tabelle.getKey()

1

2

Zeichenkette schlüssel

schlüssel = tabelle\holeSchllüssel( )

 

Zeiger auf den nächsten Schlüssel setzen

Der Hashtable-Zeiger lässt sich mit Hilfe der Methode hmtoggle_plus1 next | XDEV NLS: nächsterEintrag ( ) auf die nächste Position setzen. Die Methode gibt hmtoggle_plus1 false | XDEV NLS: Falsch zurück, wenn kein Eintrag mehr vorhanden ist.

 

1

tabelle.next();

1

tabelle.next()

1

tabelle\nächsterEintrag( )

 

 

Mit Hilfe einer Schleife lässt sich die Hashtable durchsuchen.

 

1

2

3

4

while (tabelle.next()=true)

{

 

}

1

2

3

While (tabelle.next()=true)

 

Wend

1

2

Solange ( tabelle\nächsterEintrag( ) = WAHR )

 

 

 

 

Basiswissen: Variablen, Zeiger-Variablen, Methoden, Listen