Java中二维数组的转置
时间: 2024-11-09 19:03:14 浏览: 21
在Java中,二维数组的转置是指将原数组的行变成列,列变成行的过程。例如,如果你有一个表示矩阵的二维数组`int[][] matrix`,转置后的矩阵会是一个新的二维数组`int[][] transposedMatrix`,其中原矩阵的第一行现在成为新矩阵的第一列。
以下是简单的步骤描述如何手动转置一个二维数组:
1. 创建一个新的二维数组,其长度等于原数组的列数,宽度等于原数组的行数。
2. 遍历原数组的所有元素。对于每个元素`(row, col)`,将其添加到新数组`transposedMatrix[col][row]`的位置。
3. 完成遍历后,你就得到了原矩阵的转置。
如果需要更高效地进行这个操作,可以使用Java的Collections库提供的倒序排列功能配合流(Stream) API,但这通常是在处理大型数据集时才考虑的优化。
```java
// 原始二维数组
int[][] originalMatrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 转置后的新二维数组
List<List<Integer>> transposeList = IntStream.range(0, originalMatrix.length)
.mapToObj(Arrays::asList)
.flatMap(original -> IntStream.of(original))
.boxed()
.collect(Collectors.groupingBy(index -> index % originalMatrix[0].length,
Collectors.toList()));
int[][] transposedArray = new inttransposeList.size()][transposeList.get(0).size()];
for (int i = 0; i < transposeList.size(); i++) {
for (int j = 0; j < transposeList.get(i).size(); j++) {
transposedArray[j][i] = transposeList.get(i).get(j);
}
}
```
阅读全文