Jetzt anmelden...

Name
Passwort
Registrieren

Java Blog

Mehrdimensionale Arrays durchsuchen

Wie durchsucht man ein mehrdimensionales Array nach einem ganz bestimmtes Element? Um dieses Problem zu lösen, brauchen wir nichts weiter als ein paar verschachtelte Schleifen. Wir schauen uns das jetzt für Java an zwei konkreten Beispielen an.

Kommentare [0]

Stefan 03.01.2019

Infos zum Artikel

Kategorie Java
Autor Stefan
Datum 03.01.2019

Schnelles Code-Beispiel:

int[][] array = {{1,2,3}, {4,5,6}, {7,8,9}};

for(int i = 0; i < array.length; i++){
    for(int y = 0; y < array[i].length; y++){
        if(array[i][y] == 5) { // Element suchen
            System.out.print("gefunden!");
        }
    }
}

Tutorial

Sehen wir uns ein weiteres Beispiel etwas ausführlicher an. Es geht diesmal um ein ganz typisches zweidimensionales Array von Strings:

String[][] employees = {
    {"Robert", "Inspector", "20K", "35 years", "New York"},
    {"James", "Captain", "40K", "47 years", "San Francisco"},
    {"Mary", "Commander", "15K", "23 years", "New Berlin"},
    {"Riker", "First Officer", "70K", "40 years", "Alaska"},
    {"Elisabeth", "President", "90K", "52 years", "London"},
    {"Sarah", "Inspector", "30K", "27 years", "Munich"},
    {"Sabrina", "First Admin", "100K", "32 years", "Heidelberg"},
    {"Jon", "Lord Commander", "5K", "30 years", "Winterfell"},
};

Wir suchen jetzt die Position eines ganz bestimmten String-Elements, sagen wir mal Riker:

String gesuchtesElement = "Riker";

for(int i = 0; i < employees.length; i++){
    for(int y = 0; y < employees[i].length; y++){
        if(employees[i][y].equals(gesuchtesElement)) { // Element suchen
            System.out.print(i + " " + y);
        }
    }
}

Wir vergleichen mit der verschachtelten for-Schleife jedes Element aller Sub-Arrays mit dem String Riker. Bei einem Treffer werden die Schleifenvariablen i und y bzw. die Index-Positionen auf der Konsole geprinted.

Als Ergebnis dieses Codes erhalten wir somit 3 0. Das ist genau die Index-Position von Riker im 2D-Array. Riker befindet sich nämlich im vierten Sub-Array (Index: 3) und in diesem ist es das erste Element (Index: 0)

Element im dreidimensionalen Array suchen

Um ein einzelnes Element in einem nun dreidimensionalem Array zu suchen, muss die Schleifenkonstruktion nur um eine weitere Schleife verschachtelt werden.

Hier zunächst als Beispiel ein 3d-Array aus int-Werten:

int[][][] theCube =
    {{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}},
    {{10, 11, 12}, {13, 14, 15}, {16, 17, 18}},
    {{19, 20, 21}, {22, 23, 24}, {25, 26, 27}}
};

Und jetzt die Lösung:

int gesuchtesElement = 17;
for (int i = 0; i < theCube.length; i++) {
    for (int y = 0; y < theCube[i].length; y++) {
        for (int z = 0; z < theCube[i][y].length; z++) {
            if (theCube[i][y][z] == gesuchtesElement) { // Element suchen
                System.out.print(i + " " + y + " " + z);
            }
        }
    }
}

Was erhalten wir wohl auf der Konsole geprinted, wenn wir nach dem int-Element 17 suchen?

Richtig: 1 2 1

Kommentar schreiben

Nur angemeldete Benutzer können kommentieren.

Alle Kommentare

Es gibt bislang noch keine Kommentare zu diesem Thema.

Scope von Variablen

Wie lange lebt eine Variable eigentlich?

Primitive Datentypen

Am Ende des Kapitels werden Sie wissen, wie Primitive Datentypen korrekt eingesetzt werden.

Verzweigungen in Java

Eine zentrale Notwendigkeit der Programmierung sind Verzweigungen.

FALCONBYTE.NET

Handmade with 🖤️

© 2018, 2019 Stefan E. Heller

Impressum | Datenschutz

facebook programmieren lernen twitter programmieren lernen youtube programmieren lernen