Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.30 KB | None | 0 0
  1. /**
  2. * Diese Klasse implementiert das Interface TitelListe mit "wachsenden" Arrays.
  3. *
  4. */
  5. class ArrayTitelListe implements TitelListe
  6. {
  7. // In diesem Array sind die Referenzen auf die enthaltenen Titel abgelegt.
  8. // Die Laenge des Arrays entspricht der Kapazitaet der Liste und muss daher nicht separat gespeichert werden.
  9. private Titel[] _titelArray;
  10.  
  11. // Die Kardinalitaet der Liste.
  12. private int _anzahlTitel;
  13.  
  14. // Die Anfangskapazitaet einer jeden neuen Liste.
  15. private static final int ANFANGSKAPAZITAET = 10;
  16.  
  17. /**
  18. * Initialisiert eine neue <code>ArrayTitelListe</code>.
  19. */
  20. public ArrayTitelListe()
  21. {
  22. _titelArray = new Titel[ANFANGSKAPAZITAET];
  23. _anzahlTitel = 0;
  24. }
  25.  
  26. /**
  27. * Fuege einen Titel an der Position <code>position</code> in die Titelliste
  28. * ein. Alle folgenden Eintraege werden um eine Position verschoben.
  29. * Wenn <code>position</code> gleich der Laenge der Titelliste ist, dann
  30. * fuege den <code>titel</code> am Ende an.
  31. *
  32. * @param titel Der einzufuegende Titel (darf nicht null sein).
  33. * @param position Die Position, an welcher der Titel eingefuegt werden soll.
  34. */
  35. public void fuegeEin(Titel titel, int position)
  36. {
  37. darfNichtNullSein(titel);
  38. mussGueltigeEinfuegepositionSein(position);
  39.  
  40. // TODO fuegeEin
  41. _titelArray[position] = titel;
  42. _anzahlTitel++;
  43. }
  44.  
  45. /**
  46. * Pruefe, ob ein Titel in der Liste enthalten ist.
  47. *
  48. * @param titel Der Titel, welcher in der Liste gesucht werden soll.
  49. * @return <code>true</code> wenn der Titel in der Liste ist,
  50. * ansonsten <code>false</code>.
  51. */
  52. public boolean enthaelt(Titel titel)
  53. {
  54. darfNichtNullSein(titel);
  55.  
  56. // TODO enthaelt
  57. for(Titel t : _titelArray) {
  58. if(t.equals(titel)) {
  59. return true;
  60. }
  61. }
  62. return false;
  63. }
  64.  
  65. /**
  66. * Gib den Titel an der angegebenen Position zurueck.
  67. *
  68. * @param position Die Position des Titels, der zurueckgeben werden soll.
  69. * @return Der Titel an der Position <code>position</code>.
  70. */
  71. public Titel gibTitel(int position)
  72. {
  73. mussGueltigePositionSein(position);
  74. return _titelArray[position];
  75. }
  76.  
  77. /**
  78. * Entferne den Titel an der angegebenen Position. Alle folgenden Eintraege
  79. * werden um eine Position verschoben.
  80. *
  81. * @param position Die Position des Titels, der entfernt werden soll.
  82. */
  83. public void entferne(int position)
  84. {
  85. mussGueltigePositionSein(position);
  86.  
  87. // TODO entferne
  88. _titelArray[position] = null;
  89. _anzahlTitel--;
  90. }
  91.  
  92. /**
  93. * Gib die Laenge der Liste zurueck.
  94. *
  95. * @return Anzahl der Titel in der Liste.
  96. */
  97. public int gibLaenge()
  98. {
  99. return _anzahlTitel;
  100. }
  101.  
  102. /**
  103. * Entferne alle Titel aus der Liste.
  104. */
  105. public void leere()
  106. {
  107. // TODO leere
  108. _titelArray = new Titel[ANFANGSKAPAZITAET];
  109.  
  110. }
  111.  
  112. /**
  113. * Schreibt den Array-Inhalt auf die Konsole (als Debugging-Hilfe gedacht).
  114. */
  115. public void schreibeAufKonsole()
  116. {
  117. System.out.println(java.util.Arrays.toString(_titelArray));
  118. }
  119.  
  120. /**
  121. * Liefert true fuer alle gueltigen Positionen innerhalb der Liste.
  122. *
  123. * @param position Die Position des Titels, die überprüft werden soll.
  124. * @return Das Ergebnis der Überprüfung
  125. */
  126. public boolean istGueltigePosition(int position)
  127. {
  128. return (position >= 0) && (position < gibLaenge());
  129. }
  130.  
  131. /**
  132. * Wirft eine IndexOutOfBoundsException, falls es sich um eine ungueltige Position handelt.
  133. *
  134. * @param position Die Position des Titels, die überprüft werden soll.
  135. */
  136. private void mussGueltigePositionSein(int position)
  137. {
  138. if (!istGueltigePosition(position))
  139. {
  140. throw new IndexOutOfBoundsException(position + " ist keine gueltige Position");
  141. }
  142. }
  143.  
  144. /**
  145. * Liefert true fuer alle gueltigen Einfuegepositionen innerhalb der Liste.
  146. *
  147. * @param position Die Position des Titels, die überprüft werden soll.
  148. * @return Das Ergebnis der Überprüfung
  149. */
  150. public boolean istGueltigeEinfuegeposition(int position)
  151. {
  152. return (position >= 0) && (position <= gibLaenge());
  153. }
  154.  
  155. /**
  156. * Wirft eine IndexOutOfBoundsException, falls es sich um eine ungueltige Einfuegeposition handelt.
  157. *
  158. * @param position Die Position des Titels, die überprüft werden soll.
  159. */
  160. private void mussGueltigeEinfuegepositionSein(int position)
  161. {
  162. if (!istGueltigeEinfuegeposition(position))
  163. {
  164. throw new IndexOutOfBoundsException(position + " ist keine gueltige Einfuegeposition");
  165. }
  166. }
  167.  
  168. /**
  169. * Wirft eine IllegalArgumentException, falls die uebergebene Titel-Referenz null ist.
  170. *
  171. * @param titel Der Titel der überprüft wird.
  172. */
  173. private static void darfNichtNullSein(Titel titel)
  174. {
  175. if (titel == null)
  176. {
  177. throw new IllegalArgumentException("Die Titel-Referenz darf nicht null sein.");
  178. }
  179. }
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement