Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Ein Wortschatz ist eine Menge von Woertern.
- * Es koennen Woerter hinzugefuegt werden, es kann abgefragt werden,
- * ob ein bestimmtes Wort im Wortschatz enthalten ist, und es kann die Anzahl
- * der gespeicherten Woerter abgefragt werden.
- *
- * @author (your name)
- * @version (a version number or a date)
- */
- class HashWortschatz implements Wortschatz
- {
- private final HashWertBerechner _berechner;
- private final WortListe[] _hashWortschatz;
- int _anzahl;
- /**
- * Initialisiert ein neues Exemplar von HashWortschatz.
- *
- * @param berechner der Berechner, welcher die Hashfunktion umsetzt
- * @param groesse die (initiale) Groesse der Hashtabelle
- */
- public HashWortschatz(HashWertBerechner berechner, int groesse)
- {
- _berechner = berechner;
- _hashWortschatz = new WortListe[groesse];
- for (int i= 0 ; i< groesse; ++i)
- {
- _hashWortschatz[i] = new WortListe();
- }
- _anzahl = 0;
- }
- /**
- * Fuege ein Wort zum Wortschatz hinzu, sofern es noch nicht enthalten ist.
- *
- * @param wort das hinzuzufuegende Wort
- */
- public void fuegeWortHinzu(String wort)
- {
- int rKlasse = restklasse(wort);
- if(!_hashWortschatz[rKlasse].enthaeltWort(wort))
- {
- _hashWortschatz[rKlasse].fuegeWortHinzu(wort);
- ++_anzahl;
- }
- }
- /**
- * Gib an, ob ein Wort im Wortschatz enthalten ist.
- *
- * @param wort das zu ueberpruefende Wort
- * @return true, falls das Wort enthalten ist, false sonst
- */
- public boolean enthaeltWort(String wort)
- {
- int rKlasse = restklasse(wort);
- return _hashWortschatz[rKlasse].enthaeltWort(wort);
- }
- /**
- * Gib an, wieviele Woerter im Wortschatz enthalten sind.
- *
- * @return die Anzahl der Woerter im Wortschatz
- */
- public int anzahlWoerter()
- {
- int _anzahl = 0;
- for(int i = 0; i < _hashWortschatz.length; ++i)
- {
- _anzahl = _anzahl + _hashWortschatz[i].anzahlWoerter();
- }
- return _anzahl;
- }
- /**
- * Diese Beschreibung dient zur Unterscheidung beim Messen.
- */
- public String gibBeschreibung()
- {
- return _berechner.gibBeschreibung();
- }
- /**
- * Schreibt den Wortschatz auf die Konsole (als Debugging-Hilfe gedacht).
- */
- public void schreibeAufKonsole()
- {
- String step = "";
- for(int i = 0; i < _hashWortschatz.length; i++)
- {
- for(String s: _hashWortschatz[i])
- {
- step = step + " " + s;
- }
- System.out.println("[" +i+"]" + step + ",");
- }
- }
- private int restklasse(String wort)
- {
- int i;
- i = _berechner.hashWert(wort);
- i = Math.abs(i%_hashWortschatz.length);
- return i;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement