二维数组行列互换——Java轻松实现337


在处理数据时,二维数组是一个常见的数据结构,有时我们可能需要将数组的行列进行互换,以便于后续的处理或展示。在Java中,实现二维数组行列互换相对简单,下面我们介绍两种常用的方法。

方法一:使用循环遍历

第一种方法是使用循环遍历二维数组,逐个元素地进行交换。具体步骤如下:```java
public static void swapRowsAndCols1(int[][] arr) {
int rows = ;
int cols = arr[0].length;
// 遍历每一行
for (int i = 0; i < rows; i++) {
// 遍历每一列
for (int j = i; j < cols; j++) {
// 交换元素
int temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
```

该方法的时间复杂度为O(n^2),其中n是二维数组的行数或列数。

方法二:使用Java 8 Streams

Java 8引入了Stream API,这为处理数据集合提供了更方便和简洁的方式。我们可以使用Streams来实现二维数组行列互换,具体步骤如下:```java
public static void swapRowsAndCols2(int[][] arr) {
(0, )
.forEach(i -> (i, arr[0].length)
.forEach(j -> {
int temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}));
}
```

该方法使用Streams的forEach方法遍历每一行和每一列,并使用lambda表达式进行元素交换。该方法的时间复杂度也为O(n^2)。

选择方法

两种方法在时间复杂度上是一致的,因此选择哪种方法取决于个人喜好和具体情况。如果需要更多的可读性和可维护性,可以使用循环遍历的方法。如果需要更简洁和更现代的代码,可以使用Java 8 Streams的方法。

示例

我们以一个3x3的二维数组为例,展示行列互换后的结果:```java
int[][] arr = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
("原始数组:");
printArray(arr);
swapRowsAndCols1(arr);
("行列互换后:");
printArray(arr);
```

输出结果:```
原始数组:
1 2 3
4 5 6
7 8 9
行列互换后:
1 4 7
2 5 8
3 6 9
```

2024-10-22


上一篇:Java 中打印字符串数组的高效方法

下一篇:Java 动态二维数组详解