下面是关于Java二维数组计算集合总结的完整攻略:
概述
二维数组是Java中常见的数据结构之一,它可以用来表示一个表格或矩阵,通常由若干行和列组成。本次总结主要针对二维数组的计算集合操作,包括对行、列进行计算,以及筛选出符合条件的行或列等。本文的示例代码基于Java 8编写。
创建二维数组
在Java中,我们可以使用如下方式创建二维数组:
int[][] arr = new int[3][4];
上述代码创建了一个3行4列的二维数组。
另一种创建方式是通过数组字面量的方式创建:
int[][] arr = {{1,2,3}, {4,5,6}, {7,8,9}};
上述代码创建了一个3行3列的二维数组,并对数组进行了初始化。
计算行或列的总和
计算行或列的总和是二维数组集合操作中比较基础的操作。对于行或列的总和计算,我们通常可以使用for循环来遍历数组并计算总和。例如,对于计算每一行的总和,可以按照如下方式进行编写:
int[][] arr = {{1,2,3}, {4,5,6}, {7,8,9}};
int[] rowSum = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
int sum = 0;
for (int j = 0; j < arr[i].length; j++) {
sum += arr[i][j];
}
rowSum[i] = sum;
}
System.out.println(Arrays.toString(rowSum)); // [6, 15, 24]
上述代码中,我们首先定义了一个新的一维数组rowSum
,用于存储每一行的总和。然后,我们通过嵌套的for循环来遍历二维数组,并计算每一行的总和,最后将计算结果存储到rowSum
数组中。
对于计算列的总和,代码与计算行的总和类似,只是遍历的方式不同,具体代码如下:
int[][] arr = {{1,2,3}, {4,5,6}, {7,8,9}};
int[] colSum = new int[arr[0].length];
for (int i = 0; i < arr[0].length; i++) {
int sum = 0;
for (int j = 0; j < arr.length; j++) {
sum += arr[j][i];
}
colSum[i] = sum;
}
System.out.println(Arrays.toString(colSum)); // [12, 15, 18]
上述代码中,我们定义了一个新的一维数组colSum
,用于存储每一列的总和。然后,我们通过嵌套的for循环来遍历二维数组,并计算每一列的总和,最后将计算结果存储到colSum
数组中。
筛选符合条件的行或列
除了计算行或列的总和外,我们还可以对二维数组进行筛选,获取符合条件的行或列。一种常见的方式是使用Lambda表达式和Stream API来实现。例如,对于筛选出所有行的总和大于10的行,可以按照如下方式编写代码:
int[][] arr = {{1,2,3}, {4,5,6}, {7,8,9}};
int[][] filteredRows = Arrays.stream(arr)
.filter(row -> Arrays.stream(row).sum() > 10)
.toArray(int[][]::new);
System.out.println(Arrays.deepToString(filteredRows)); // [[4, 5, 6], [7, 8, 9]]
上述代码中,我们首先使用Arrays.stream方法将二维数组转换为Stream对象,并使用filter方法进行过滤,对于每一行,我们计算其总和是否大于10,对于符合条件的行,我们使用toArray方法将其转换为二维数组并存储到filteredRows数组中。最后,我们使用Arrays.deepToString方法将结果打印出来。
对于筛选出所有列的总和大于10的列,可以按照如下方式编写代码:
int[][] arr = {{1,2,3}, {4,5,6}, {7,8,9}};
int[][] transposed = new int[arr[0].length][arr.length];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
transposed[j][i] = arr[i][j];
}
}
int[][] filteredCols = Arrays.stream(transposed)
.filter(col -> Arrays.stream(col).sum() > 10)
.toArray(int[][]::new);
System.out.println(Arrays.deepToString(filteredCols)); // [[4, 7], [5, 8], [6, 9]]
上述代码中,我们首先使用一个嵌套的for循环将原始的二维数组进行转置,即将行变为列。然后,我们使用Arrays.stream方法将转置后的二维数组转换为Stream对象,并使用filter方法进行过滤,对于每一列,我们计算其总和是否大于10,对于符合条件的列,我们使用toArray方法将其转换为二维数组并存储到filteredCols数组中。最后,我们使用Arrays.deepToString方法将结果打印出来。
小结
本文总结了Java二维数组的计算集合操作,包括对行、列进行计算,以及筛选出符合条件的行或列。对于行或列的计算,我们可以使用for循环遍历数组并计算总和;对于筛选符合条件的行或列,我们可以使用Lambda表达式和Stream API来实现。以上所述的内容是本人的一些个人见解,仅供参考,如有不足或错误之处,欢迎指正。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java二维数组计算集合总结 - Python技术站