Java 中的矩阵/二维数组是什么?
“矩阵是排列成固定数量的行和列的数字的集合。” 通常,这些数组都是实数。一般来说,矩阵可以包含复数,但为了简单起见,我们将在这里只使用整数。让我们看看矩阵的样子。这是一个 4 行 4 列的矩阵示例。图 1:简单的 4x4 矩阵
图 2:图 1 中的矩阵[4][4] 在 Java 中表示为二维数组
声明和初始化二维数组
下面是一些不同的方法,要么只声明数组的大小,要么只初始化而不提及大小。 public class Matrices { public static void main(String[] args) { // declare & initialize 2D arrays for int and string int[][] matrix1 = new int[2][2]; int matrix2[][] = new int[2][3]; //the size of matrix3 will be 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]; //the size of matrix5 will be 2x3 // 3 cols because at max there are 3 columns String[][] matrix5 = { { "a", "lion", "meo" }, { "jaguar", "hunt" } };二维数组遍历
我们都知道如何在 Java 中遍历常规数组。对于二维数组也不难。我们通常使用嵌套的“for”循环进行遍历。一些初学者可能不了解这个概念,但只要你深入研究,就可以通过一些练习来实现。看看下面的代码片段。为让你理解清楚,它只显示每行对应的列数。 public class MatrixTraversal { public static void main(String[] args) { int[][] matrix = new int[4][4]; for (int i = 0; i < matrix.length; i++) // length returns number of rows System.out.print("row " + i + " : "); for (int j = 0; j < matrix[i].length; j++) // here length returns # of columns corresponding to current row System.out.print("col " + j + " "); System.out.println();
行 0 : 列 0 列 1 列 2 列 3
行 1 : 列 0 列 1 列 2 列 3
行 2 : 列 0 列 1 列 2 列 3
行 3 : 列 0 列 1 列 2 列 3
如何在 Java 中输出二维数组?
在熟悉了二维数组遍历之后,我们再来看看在 Java 中输入二维数组的几种方式。使用嵌套的“for”循环
这是在 Java 中输出矩阵的最基本方法。 public class MatrixTraversal { public static void printMatrix(int matrix[][]) for (int i = 0; i < matrix.length; i++) // length returns number of rows for (int j = 0; j < matrix[i].length; j++) // here length returns number of columns corresponding to current row // using tabs for equal spaces, looks better aligned // matrix[i][j] will return each element placed at row ‘i',column 'j' 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);
3 2 1 7
9 11 5 4
6 0 13 17
7 21 14 15
使用“for-each”循环
这是 Java 中另一种使用“ foreach 循环” 输出二维数组的方法。这是 Java 提供的一种特殊类型的循环,其中 int[]row 将循环遍历矩阵中的每一行。然而,变量“element”将包含放在行中列下标处的每个元素。 public class MatrixTraversal { public static void printMatrix(int matrix[][]){ for (int [] row : matrix) // traverses through number of rows for (int element : row) // 'element' has current element of row index 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);
3 2 1 7
9 11 5 4
6 0 13 17
7 21 14 15
使用“Arays.toString()”方法
在 Java 中, Arrays.toString() 方法会将传递给它的每个参数转换为单个数组,并使用内置的方法进行输出。我们创建了一个虚拟的 String 二维数组进行练习。同样的方法也适用于整数数组。我们鼓励实现此方法,作为练习之用。 import java.util.Arrays; public class MatrixTraversal { public static void printMatrix(String matrix[][]){ for (String[] row : matrix) { // convert each row to a String before printing System.out.println(Arrays.toString(row)); public static void main(String[] args) { String [][] matrix = { { "Hi, I am Karen" }, { "I'm new to Java"}, { "I love swimming" }, { "sometimes I play keyboard"} }; printMatrix(matrix);
[你好,我是凯琳]
[我是一名 Java 新手]
[我喜欢游泳]
[我有时会敲打键盘]