15.09.2014 Aufrufe

Schrödinger programmiert Java - Das etwas andere Fachbuch

Schrödinger programmiert Java - Das etwas andere Fachbuch

Schrödinger programmiert Java - Das etwas andere Fachbuch

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!