Was ist eine Matrix / ein 2D-Array in Java?
„Eine Matrix ist eine Sammlung von Zahlen, die in einer festen Anzahl von Zeilen und Spalten angeordnet sind.“ Normalerweise handelt es sich dabei um reelle Zahlen. Im Allgemeinen können Matrizen komplexe Zahlen enthalten, aber der Einfachheit halber werden wir hier nur ganze Zahlen verwenden. Schauen wir uns einmal an, wie eine Matrix aussieht. Hier ist ein Beispiel für eine Matrix mit 4 Zeilen und 4 Spalten.
Abb. 1: Eine einfache 4x4-Matrix

Abb. 2: Die matrix[4][4] in Abb. 1 dargestellt als 2D-Array in Java
Deklarieren und Initialisieren eines 2D-Arrays
Hier sind einige Möglichkeiten, entweder nur die Größe des Arrays zu deklarieren oder es zu initialisieren, ohne die Größe vorzugeben.
public class Matrices {
public static void main(String[] args) {
// 2D-Arrays für int und string deklarieren und initialisieren
int[][] matrix1 = new int[2][2];
int matrix2[][] = new int[2][3];
//die Größe von matrix3 ist 4x4
int[][] matrix3 = { { 3, 2, 1, 7 },
{ 9, 11, 5, 4 },
{ 6, 0, 13, 17 },
{ 7, 21, 14, 15 } };
String[][] matrix4 = new String[2][2];
//die Größe von matrix5 ist 2x3
// 3 Spalten, weil es maximal 3 Spalten gibt
String[][] matrix5 = { { "a", "lion", "meo" },
{ "jaguar", "hunt" } };
}
}
2D-Array durchlaufen
Wir alle wissen, wie man in Java gewöhnliche Arrays durchläuft. Für 2D-Arrays ist das auch nicht schwer. Hierfür verwenden wir in der Regel verschachtelte „for“-Schleifen. Manchen Anfängern mag dieses Konzept fremd vorkommen, aber sobald du dich näher damit beschäftigst, wirst du es mit etwas Übung umsetzen können. Sieh dir den folgenden Codeschnipsel an. Zum besseren Verständnis wird nur die Anzahl der Spalten angezeigt, die zu jeder Zeile gehören.
public class MatrixTraversal {
public static void main(String[] args) {
int[][] matrix = new int[4][4];
for (int i = 0; i < matrix.length; i++)
{
// length gibt die Anzahl der Zeilen zurück
System.out.print("row " + i + " : ");
for (int j = 0; j < matrix[i].length; j++)
{
// hier gibt length die Anzahl der Spalten zurück, die der aktuellen Zeile entsprechen
System.out.print("col " + j + " ");
}
System.out.println();
}
}
}
Ausgabe
row 0 : col 0 col 1 col 2 col 3
row 1 : col 0 col 1 col 2 col 3
row 2 : col 0 col 1 col 2 col 3
row 3 : col 0 col 1 col 2 col 3

Wie gebe ich ein 2D-Array in Java aus?
Nachdem du dich mit dem Durchlaufen von 2D-Arrays vertraut gemacht hast, schauen wir uns ein paar Möglichkeiten an, 2D-Arrays in Java auszugeben.Verschachtelte „for“-Schleife verwenden
Dies ist die einfachste Art, die Matrix in Java auszugeben.
public class MatrixTraversal {
public static void printMatrix(int matrix[][])
{
for (int i = 0; i < matrix.length; i++)
{
// length gibt die Anzahl der Zeilen zurück
for (int j = 0; j < matrix[i].length; j++)
{
// hier gibt length die Anzahl der Spalten zurück, die der aktuellen Zeile entsprechen
// Tabulatoren für gleiche Abstände verwenden, sieht besser ausgerichtet aus
// matrix[i][j] gibt jedes Element zurück, das in Zeile 'i' und Spalte 'j' steht
System.out.print( matrix[i][j] + "\t");
}
System.out.println();
}
}
public static void main(String[] args) {
int[][] matrix = { { 3, 2, 1, 7 },
{ 9, 11, 5, 4 },
{ 6, 0, 13, 17 },
{ 7, 21, 14, 15 } };
printMatrix(matrix);
}
}
Ausgabe
3 2 1 7
9 11 5 4
6 0 13 17
7 21 14 15
„for-each“-Schleife verwenden
Hier ist eine weitere Möglichkeit, 2D-Arrays in Java mit der foreach-Schleife auszugeben. Dies ist eine spezielle Art von Schleife, die Java anbietet, bei der int[]row jede Zeile der Matrix in einer Schleife durchläuft. Die Variable „element“ hingegen enthält jedes Element, das am Spaltenindex der Zeile steht.
public class MatrixTraversal {
public static void printMatrix(int matrix[][]){
for (int [] row : matrix)
{
// durchläuft die Anzahl der Zeilen
for (int element : row)
{
// 'element' enthält das aktuelle Element des Zeilenindexes
System.out.print( element + "\t");
}
System.out.println();
}
}
public static void main(String[] args) {
int[][] matrix = { { 3, 2, 1, 7 },
{ 9, 11, 5, 4 },
{ 6, 0, 13, 17 },
{ 7, 21, 14, 15 } };
printMatrix(matrix);
}
}
Ausgabe
3 2 1 7
9 11 5 4
6 0 13 17
7 21 14 15
Methode „Arrays.toString()“ verwenden
Die Methode Arrays.toString() in Java wandelt jeden Parameter, der ihr übergeben wird, in ein einzelnes Array um und verwendet die eingebaute Methode, um es auszugeben. Wir haben ein 2D-String-Array zu Übungszwecken erstellt. Die gleiche Methode funktioniert auch für ganzzahlige Arrays. Probiere es als Übung am besten selbst einmal aus.
import java.util.Arrays;
public class MatrixTraversal {
public static void printMatrix(String matrix[][]){
for (String[] row : matrix) {
// jede Zeile vor dem Ausgeben in einen String umwandeln
System.out.println(Arrays.toString(row));
}
}
public static void main(String[] args) {
String [][] matrix = { { "Hallo, ich bin Karen" },
{ "Ich bin neu bei Java"},
{ "Ich liebe Schwimmen" },
{ "Manchmal spiele ich Keyboard"} };
printMatrix(matrix);
}
}
Ausgabe
[Hallo, ich bin Karen]
[Ich bin neu bei Java]
[Ich liebe Schwimmen]
[Manchmal spiele ich Keyboard]
GO TO FULL VERSION