Arrays:Javakurs
Theorie
Es kommt oft vor, dass eine Liste von gleichartigen Objekten benötigt wird. Dies wird als "Feld" (array) bezeichnet.
Die Elemente eines Feldes werden per Index angesprochen. Der erste gültige Index ist 0.
Wieviel Elemente ein Feld hat, wird bei der Definition festgelegt. Die Anzahl kann zur Laufzeit nicht geändert werden. Ausweg: neues Feld definieren und umkopieren.
Man kann natürlich auch die Anzahl der Elemente, die ein Feld hat abfragen. Das wird mit <feld>.length erledigt.
Syntax
Definition
<datatype> <name> '[' ']' '=' 'new' <dataType> '(' <count_expr> ')' ';'
Der Anzahl-Ausdruck muss eine Ganzzahl liefern (int).
Zuweisung
<name> '[' <index_expr> ']' '=' <value_expr> ';'
Der Index-Ausdruck muss eine Ganzzahl liefern (int) und zwischen 0 und der Maximalindex (bei der Definition festgelegt), liegen.
Verwendung
<name> '[' <index_expr> ']'
Der Index-Ausdruck muss eine Ganzzahl liefern (int) und zwischen 0 und der Maximalindex (bei der Definition festgelegt), liegen.
Beispiel
// Sieb des Eratosthenes: von 1..100 int count = 100; boolean sieve = new boolean[count]; int ix; for (ix = 0; ix < count; ix++) sieve[ix] = true; for (divider = 1; divider*divider < count; divider += 2){ int div2 = divider == 1 ? 2 : divider; for (ix = div2; ix < count; ix += div2) sieve[ix] = false; } for (ix = 0; ix < count; ix++){ if (sieve[ix]) System.out.print(String.format(" %d", ix)); } System.out.println();
Aufgabe
- Überprüfe für die ersten 90 Fibunacci-Zahlen folgende Aussagen
- genau jede dritte Fibonacci-Zahl ist durch 2 teilbar
- genau jede fünfte Fibonacci-Zahl ist durch 5 teilbar
Beachte: die 90.te Fibunacci-Zahl ist 2.88E18, also gerade noch als long darstellbar (2**63=9E18)