Falconbyte unterstüzen
Betrieb und Pflege von Falconbyte brauchen viel Zeit und Geld. Um dir auch weiterhin hochwertigen Content anbieten zu können, kannst du uns sehr gerne mit einem kleinen "Trinkgeld" unterstützen.
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