在Java中,转置一个数组通常意味着将数组的行和列互换,即将原数组的行变成列,列变成行。以下是一些转置数组的常见方法:
方法一:使用循环交换素
java
public class ArrayTranspose {
public static void main(String[] args) {
int[][] array = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int[][] transposed = new int[array.length][array.length];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
transposed[j][i] = array[i][j];
}
}
// 打印转置后的数组
for (int i = 0; i < transposed.length; i++) {
for (int j = 0; j < transposed.length; j++) {
System.out.print(transposed[i][j] + " ");
}
System.out.println();
}
}
}
方法二:使用Java集合的toArray()方法
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ArrayTranspose {
public static void main(String[] args) {
List
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
Integer[] array = list.toArray(new Integer);
Integer[][] transposed = new Integer[array.length][];
for (int i = 0; i < array.length; i++) {
transposed[i] = new Integer[array.length - 1 - i];
for (int j = 0; j < array.length - 1 - i; j++) {
transposed[i][j] = array[j + i + 1];
}
}
// 打印转置后的数组
for (int i = 0; i < transposed.length; i++) {
for (int j = 0; j < transposed.length; j++) {
System.out.print(transposed[i][j] + " ");
}
System.out.println();
}
}
}
方法三:使用Java 8的流API
java
import java.util.Arrays;
import java.util.stream.Collectors;
public class ArrayTranspose {
public static void main(String[] args) {
int[][] array = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int[][] transposed = Arrays.stream(array)
.map(row -> Arrays.stream(row).boxed().collect(Collectors.toList()))
.map(list -> list.stream().mapToInt(Integer::intValue).toArray())
.toArray(int[][]::new);
// 打印转置后的数组
for (int i = 0; i < transposed.length; i++) {
for (int j = 0; j < transposed.length; j++) {
System.out.print(transposed[i][j] + " ");
}
System.out.println();
}
}
}
以上代码展示了如何使用不同的方法在Java中转置一个二维数组。您可以根据自己的需要选择合适的方法。需要注意的是,转置操作会创建一个新的数组来存储转置后的数据,原数组不会被改变
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/65886.html