java - 根据arr[i]之和对二维int数组从低到高排序
问题描述
在对整数二维数组进行排序的作业中,我陷入了死胡同。
指令是创建一个函数,该函数采用二维 int 数组(不一定是矩阵)并根据内部数组的总和对外部数组进行排序。换句话说,数组的第一个索引应该是总和最小的内部数组。
示例 - 输入 - int[][] 数组 = {{2, 4, 1,9,9,9,9}, {6, 8}, {7, 3, 6, 5, 1}};
输出 - 数组 = {{6, 8}, {7, 3, 6, 5, 1}, {2, 4, 1,9,9,9,9}};
到目前为止,我的逻辑是创建一个新的一维数组,其中将包含主数组中每个内部数组的总和。并根据它进行排序。
public static int[] arraysCalculator(int[][] arr) {
int[] sums = new int[arr.length];
int sum= 0;
for(int i = 0; i < arr.length; i++)
{
for(int j = 0; j < arr[i].length; j++)
{
sum += arr[i][j];
}
sums[i] = sum;
sum = 0;
}
解决方案
您可以int[]
通过流式传输然后调用sum()
. 从那里,只需调用Arrays.sort
一个比较这个总和的比较器:
Arrays.sort(array, Comparator.comparingInt(a -> Arrays.stream(a).sum()));
推荐阅读
- apache-camel - 如何检查 Camel 消息正文是否基于流?
- java - 如何通过 AnnotationProcessor 访问 TypeUse 注释
- javascript - 如何在 oncomplete 中检查两个以上的条件
- python - 错误:预期的序列或类似数组,得到
" - html - 内联网格相关的 CSS 在 Gmail 中消失
- powershell - 无法使用 .csv 文件的数据
- python - 对交集结果进行排序以保持最大长度仅在 python 中设置
- c - 将数据从文件X复制到文件Y C中的程序
- postgresql - Postgres 索引扫描表现不佳
- xslt-1.0 - 如何对每组节点满足特定条件的值求和使用 XSLT-1.0