Advertisement
Guest User

Untitled

a guest
Jan 28th, 2015
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. /**
  2. * Ein Wortschatz ist eine Menge von Woertern.
  3. * Es koennen Woerter hinzugefuegt werden, es kann abgefragt werden,
  4. * ob ein bestimmtes Wort im Wortschatz enthalten ist, und es kann die Anzahl
  5. * der gespeicherten Woerter abgefragt werden.
  6. *
  7. * @author (your name)
  8. * @version (a version number or a date)
  9. */
  10. class HashWortschatz implements Wortschatz
  11. {
  12. private final HashWertBerechner _berechner;
  13. private final WortListe[] _hashWortschatz;
  14.  
  15. int _anzahl;
  16.  
  17. /**
  18. * Initialisiert ein neues Exemplar von HashWortschatz.
  19. *
  20. * @param berechner der Berechner, welcher die Hashfunktion umsetzt
  21. * @param groesse die (initiale) Groesse der Hashtabelle
  22. */
  23. public HashWortschatz(HashWertBerechner berechner, int groesse)
  24. {
  25. _berechner = berechner;
  26. _hashWortschatz = new WortListe[groesse];
  27. for (int i= 0 ; i< groesse; ++i)
  28. {
  29. _hashWortschatz[i] = new WortListe();
  30. }
  31. _anzahl = 0;
  32.  
  33. }
  34.  
  35. /**
  36. * Fuege ein Wort zum Wortschatz hinzu, sofern es noch nicht enthalten ist.
  37. *
  38. * @param wort das hinzuzufuegende Wort
  39. */
  40. public void fuegeWortHinzu(String wort)
  41. {
  42. int rKlasse = restklasse(wort);
  43. if(!_hashWortschatz[rKlasse].enthaeltWort(wort))
  44. {
  45. _hashWortschatz[rKlasse].fuegeWortHinzu(wort);
  46. ++_anzahl;
  47. }
  48.  
  49. }
  50.  
  51. /**
  52. * Gib an, ob ein Wort im Wortschatz enthalten ist.
  53. *
  54. * @param wort das zu ueberpruefende Wort
  55. * @return true, falls das Wort enthalten ist, false sonst
  56. */
  57. public boolean enthaeltWort(String wort)
  58. {
  59. int rKlasse = restklasse(wort);
  60. return _hashWortschatz[rKlasse].enthaeltWort(wort);
  61. }
  62.  
  63. /**
  64. * Gib an, wieviele Woerter im Wortschatz enthalten sind.
  65. *
  66. * @return die Anzahl der Woerter im Wortschatz
  67. */
  68. public int anzahlWoerter()
  69. {
  70. int _anzahl = 0;
  71. for(int i = 0; i < _hashWortschatz.length; ++i)
  72. {
  73. _anzahl = _anzahl + _hashWortschatz[i].anzahlWoerter();
  74. }
  75. return _anzahl;
  76. }
  77.  
  78. /**
  79. * Diese Beschreibung dient zur Unterscheidung beim Messen.
  80. */
  81. public String gibBeschreibung()
  82. {
  83. return _berechner.gibBeschreibung();
  84. }
  85.  
  86. /**
  87. * Schreibt den Wortschatz auf die Konsole (als Debugging-Hilfe gedacht).
  88. */
  89. public void schreibeAufKonsole()
  90. {
  91. String step = "";
  92. for(int i = 0; i < _hashWortschatz.length; i++)
  93. {
  94. for(String s: _hashWortschatz[i])
  95. {
  96. step = step + " " + s;
  97. }
  98. System.out.println("[" +i+"]" + step + ",");
  99. }
  100.  
  101. }
  102.  
  103. private int restklasse(String wort)
  104. {
  105. int i;
  106. i = _berechner.hashWert(wort);
  107. i = Math.abs(i%_hashWortschatz.length);
  108. return i;
  109. }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement