如何在Java中仅获取二维矩阵中的某一行?

6

当我在Java中有一个二维矩阵,但我只想分别使用该矩阵中的某行创建一个包含该行矩阵内容的新数组时,我该如何实现(使用基本数据类型)?

例如,我们可以这样写:


```java int[][] matrix = {{1, 2}, {3, 4}, {5, 6}}; int[] row = matrix[1]; // get the second row ```

其中,matrix是一个二维整数数组,row是一个整数数组。

int[][] matrix = new int[10][10];

现在我们有一个10行10列的二维矩阵。假设我们用某些元素填充了整个矩阵,现在我只想操作第一行,也就是定义一个新数组,其中仅包含矩阵第一行的元素。


展示你的代码,一个矩阵示例,你想要“抓取”什么以及你实际上抓取了什么(期望值与实际值)。 - Nir Alfasi
1个回答

10
假设行指的是矩阵的水平部分(因为这几乎总是这样):
在Java中的二维数组中,行是第一个索引,列是第二个索引。
基本上,二维数组是数组的数组。
int[][] intArray = new int[10][3];

实际上是一个大小为10的数组。该数组中的每个元素本身都是大小为3的数组。

假设你有一个整数数组

int[][] integerArray; //we have to initialize the array.

接着,我们想要处理第一行。我们会使用:

int[] arr = integerArray[0];

限制

  1. 矩阵必须初始化(单元格中必须有值)
  2. 矩阵必须有第一行

注意:我们使用 integerArray[0],因为数组从索引0开始,所以第三行是 integerArray[2]


谢谢!你第二行的列会发生什么?为什么它可以被“忽略”? - Julian
1
在Java中,多维数组只是一个数组的数组。 - Timothy Truckle
@Julian 但你应该编辑你的问题更好地解释你的意思。这是一个好习惯。另外,如果你接受这个答案,标记它为已接受(在答案分数下面的V符号)。 - ItamarG3
1
@Julian同样也是一位数学家,在这种情况下,编程和数学是相同的。 - ItamarG3
@alfasin,这是完全正确的,但在这种情况下,问题(至少对我来说)在第一次修订时已经足够清晰,可以回答。之后,在给出答案后,我想确保它几乎完全回答了OP想要的问题,因此需要更多的澄清,但并非必要。 - ItamarG3
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接