Arrays:Javakurs

Aus Info-Theke
Version vom 29. September 2014, 19:09 Uhr von Marc (Diskussion | Beiträge) (→‎Beispiel)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


Übersicht

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.

Initalisierung mit Konstanten

Sind die Werte eines Arrays bekannt, können sie bei der Definition schon angegeben werden:

int[] numberBases = { 2, 8, 10, 16 };
char[] vovals = { 'a', 'e', 'i', 'o', 'u' }; 

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 (int divider = 1; divider*divider < count; divider += 2){
           int mult = divider == 1 ? 2 : divider;
           for (ix = mult*2; ix < count; ix += mult)
              sieve[ix] = false;
        }
        for (ix = 2; 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

Hinweis: Fibunacci-Zahlen sind eine Zahlfolge mit den Anfangswerten 1 und 1 und der Formel: Fn = Fn-2 + Fn-1. Also F3 = F1 + F2, F4 = F2 + F3 ...

Beachte: die 90.te Fibunacci-Zahl ist 2.88E18, also gerade noch als long darstellbar (2**63=9E18)