Navigation überspringen

Mehrdimensionale Arrays

Eindimensionale Arrays

Bislang kennen wir eindimesionale Arrays. Das heißt, die Werte werden entlang eines Index-Zählers abgelegt.

public class ArrayMehrdimensional {
    public static void main(String[] args) {
        int[] intArray = new int[4];
        for(int i=0; i<intArray.length; i++){
            intArray[i] = 5;
        }
    }
}



Zweidimensionales Array

Im Umgang mit Tabellenkalkulationsprogrammen sind wir gewohnt mit Tabellenblättern zu arbeiten. Ein einzelnes Datum ist bestimmt durch Spalte und Zeile. Im folgenden Beispiel hat das rot gezeichnete Feld die Koordinate P=( C | 5 ).

Dieser Zusammenhang läßt sich ebenfalls mit Arrays abbilden. Die Spaltenbezeichnung ändern wir der Einfachheit ab in ZahlenIndex und schreiben:

public class ArrayMehrdimensional {
    public static void main(String[] args) {
        String[][] stringArray = new String[5][11];
        int nSpalten=stringArray.length;
        int nZeilen=stringArray[0].length;
        for(int iSpalten=0; iSpalten<nSpalten; iSpalten++){
            for(int iZeilen=0; iZeilen<nZeilen; iZeilen++){
                if(iSpalten==2 && iZeilen==4){
                    stringArray[iSpalten][iZeilen]="St";
                }
            }
        }
    }
}

ACHTUNG: Anders als in der Vorgabe des Tabellenkalkulations-Programms beginnt die Indexierung eines Arrays bei 0.

Dreidimensionale Arrays

Ebenfsalls im Umgang mit Tabellenkalkulationsprogrammen sind wir gewohnt mit mehreren Tabellenblättern zu arbeiten. Diesen Zustand können wir mit einer dritten Dimension in Java umsetzen. Es soll der gleiche Ausdruck (String: "St") auf das zweite Tabellenblatt geschrieben werden bei gleichbleibenden Tabellenkoordinaten:

public class ArrayMehrdimensional {

    public static void main(String[] args) {
        String[][][] stringArray = new String[2][5][11];
        int nSeite = stringArray.length;
        int nSpalte = stringArray[0].length;
        int nZeile = stringArray[0][0].length;

        for (int iSeite = 0; iSeite < nSeite; iSeite++) {
            for (int iSpalten = 0; iSpalten < nSpalte; iSpalten++) {
                for (int iZeilen = 0; iZeilen < nZeile; iZeilen++) {
                    if (iSeite == 1 && iSpalten == 2 && iZeilen == 4) {
                        stringArray[iSeite][iSpalten][iZeilen] = "St";
                    }
                }
            }
        }
    }
}