16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

}<br />

System.out.pr<strong>in</strong>tln(h);<br />

// System.out.pr<strong>in</strong>tln(map);<br />

// System.out.pr<strong>in</strong>tln("Sortierte Tabelle");<br />

// Map sortedMap = new TreeMap(map);<br />

// System.out.pr<strong>in</strong>tln(sortedMap);<br />

}<br />

}<br />

Die Klasse Hashtable benutzt das Verfahren <strong>de</strong>r Schlüsseltransformation (Hash-<br />

Funktion) zur Abbildung von Schlüsseln auf In<strong>de</strong>xpostionen e<strong>in</strong>es Arrays. Die<br />

Kapazität <strong>de</strong>r Hash-Tabelle gibt die Anzahl <strong>de</strong>r Elemente an, die <strong>in</strong>sgesamt<br />

untergebracht wer<strong>de</strong>n können. Der La<strong>de</strong>faktor zeigt an, bei welchem Füllungsgrad<br />

die Hash-Tabelle vergrößert wer<strong>de</strong>n muß. Das Vergrößern erfolgt automatisch, falls<br />

die Anzahl <strong>de</strong>r Elemente <strong>in</strong>nerhalb <strong>de</strong>r Tabelle größer ist als das Produkt aus<br />

Kapazität und La<strong>de</strong>faktor. Seit <strong>de</strong>m JDK 1.2 darf <strong>de</strong>r La<strong>de</strong>faktor auch größer als 1<br />

se<strong>in</strong>. In diesem Fall wird die Hash-Tabelle erst dann vergrößert, wenn <strong>de</strong>r<br />

Füllungsgrad größer als 100% ist und bereits e<strong>in</strong> Teil <strong>de</strong>r Elemente <strong>in</strong> <strong>de</strong>n<br />

Überlaufbereichen untergebracht wur<strong>de</strong>.<br />

Die Klasse Hashtable ist e<strong>in</strong>e beson<strong>de</strong>re Klasse für Wörterbücher. E<strong>in</strong> Wörterbuch<br />

ist e<strong>in</strong>e Datenstruktur, die Elemente mite<strong>in</strong>an<strong>de</strong>r assoziiert. Das Wörterbuchproblem<br />

ist das Problem, wie aus <strong>de</strong>m Schlüssel möglichst schnell <strong>de</strong>r zugehörige Wert<br />

konstruiert wird. Die Lösung <strong>de</strong>s Problems ist: Der Schlüssel wird als Zahl kodiert<br />

(Hashco<strong>de</strong>) und dient <strong>in</strong> e<strong>in</strong>em Array als In<strong>de</strong>x. An e<strong>in</strong>em In<strong>de</strong>x hängen dann noch<br />

die Werte mit gleichem Hashco<strong>de</strong> als Liste an.<br />

6.1.6 Die abstrakte Klasse Dictionary<br />

Die Klasse Dictionary ist e<strong>in</strong>e abstrakte Klasse, die Metho<strong>de</strong>n anbietet, wie<br />

Objekte (also Schlüssel und Wert) mite<strong>in</strong>an<strong>de</strong>r assoziiert wer<strong>de</strong>n:<br />

public abstract Object put(Object key, Object value)<br />

// fügt <strong>de</strong>n Schlüssel key mit <strong>de</strong>m verbun<strong>de</strong>nen Wert value <strong>in</strong> das Wörterbuch<br />

// e<strong>in</strong><br />

public abstract Object get(Object key)<br />

// liefert das zu key gehören<strong>de</strong> Objekt zurück. Falls ke<strong>in</strong> Wert mit <strong>de</strong>m<br />

// Schlüssel verbun<strong>de</strong>n ist, so liefert get() e<strong>in</strong>e null. E<strong>in</strong>e null als<br />

// Schlüssel o<strong>de</strong>r Wert kann nicht e<strong>in</strong>gesetz wer<strong>de</strong>n. In put() wür<strong>de</strong> das zu<br />

// e<strong>in</strong>er NullPo<strong>in</strong>terException führen.<br />

public abstract Object remove(Object key)<br />

// entfernt e<strong>in</strong> Schlüssel/Wertepaar aus <strong>de</strong>m Wörterbuch. Zurückgegeben wird<br />

// <strong>de</strong>r assoziierte Wert.<br />

public abstract boolean isEmpty()<br />

// true, falls ke<strong>in</strong>e Werte im Wörterbuch<br />

public <strong>in</strong>t size()<br />

gibt zurück, wie viele Elemente aktuell im Wörterbuch s<strong>in</strong>d.<br />

public abstract Enumeration keys()<br />

// liefert e<strong>in</strong>e Enumeration für alle Schlüssel<br />

public abstract Enumeration elements()<br />

// liefert e<strong>in</strong>e Enumeration über alle Werte.<br />

432

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!