Schrödinger programmiert Java - Das etwas andere Fachbuch
Schrödinger programmiert Java - Das etwas andere Fachbuch
Schrödinger programmiert Java - Das etwas andere Fachbuch
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
[Schwierige Aufgabe]<br />
Passe den Schuhtester so an, dass er nicht nach dem zwanzigsten Paar Schuhe aufgibt!<br />
Puh, das ist abр stnd, dann muss ich ja extra<br />
immer ein neues Array erstellen, wenn im alten kein Platz mehr<br />
ist, und dann alle Objekte aus dem alten Array in das neue kopieren.<br />
Einzeln! Oh Mn!<br />
if (this.schuhZaehler >= this.schuhe.length) {*1<br />
SchuhPaar[] schuhKopien = new SchuhPaar[this.schuhe.length + 20];*2<br />
for (int i=0; i= this.schuhe.length) {<br />
this.schuhe = Arrays.copyOf(this.schuhe*1, this.schuhe.length + 20*2);<br />
}<br />
*1 Erster Parameter:<br />
das Array, das kopiert werden soll<br />
*2 Zweiter Parameter: die Größe des neuen<br />
Arrays. Könnte einfacher nicht sein, oder?<br />
Hтst mir das ch vorher gesagt!<br />
Okay, das bedeutet, das Kopieren des Arrays muss ich nicht mehr<br />
selber machen, aber ich muss immer noch die Größe des Arrays im<br />
Auge behalten. Gibt es dafür nicht auch eine Helfermethode?<br />
Eine Helfermethode gibt es zwar nicht, aber dafür so <strong>etwas</strong> wie<br />
dynamisch wachsende Arrays: Collections!<br />
[Achtung]<br />
Nicht nur das dynamische Vergrößern von Arrays ist<br />
umständlich, sondern auch, herauszufinden, wie viele Elemente<br />
in einem Array drin sind. <strong>Das</strong> length-Feld liefert nämlich<br />
[Notiz]<br />
Nichtsdestotrotz findest du in der<br />
Arrays-Helferklasse jede Menge<br />
<strong>andere</strong>r nützlicher Methoden, unter<br />
<strong>andere</strong>m auch Methoden für das<br />
Suchen und das Sortieren.<br />
immer den Wert, den man bei der Array-Deklaration mitgegeben hat, sprich die Größe des Arrays,<br />
aber nicht die Anzahl der Elemente. Stell dir vor, dein Schuh-Array hat ein Fassungsvermögen von 20,<br />
enthält aber nur 15 Schuhpaare. Die length-Variable liefert dann trotzdem 20, wobei 15 Plätze<br />
mit Werten und die <strong>andere</strong>n mit null belegt sind und diese 15 Werte nicht mal hintereinanderstehen<br />
müssen. <strong>Das</strong> hängt ganz davon ab, an welchen Stellen du sie eingefügt hast.<br />
316 Kapitel ACHT