按列对数组进行排序,就像我想在这里对最后一行上的值进行排序一样,根据排序结果,同一行中其他列上的数字也可能会发生变化
例如
int[]array={{1,5,3},{2,6,4},{12,10,1},{30,75,1}
输出应该是
{12,10,1}{30,75,1}{1,5,3}{2,6,4}
'system.out.println("Entre la cantidas de Procesos que quiere correr:"); int pros=scan.nextInt();
int[][] myArr = new int[pros][3];
for(int i=0; i< pros; i++){
System.out.println("CPU Burst proceso "+count+" :");
time2=scan.nextInt();
System.out.println("Arrival Time proceso "+count+" :");
arrt=scan.nextInt();
myArr[i][0]=count;
myArr[i][1]=time2;
myArr[i][2]=arrt;
count++;
}
Arrays.sort(myArr, new Comparator<int[]>() {
public int compare(int[] o1, int[] o2) {
return Integer.compare(o2[2], o1[2]);
}
});
System.out.println(Arrays.deepToString(myArr)); `
让我们构造一个长度与array.length
相同的辅助数组:
int[] thirdColumnValues = new int[array.length];
然后我们可以复制第三列的值:
for(int i = 0; i < array.length; i++) {
thirdColumnValues[i] = array[i][2];
}
然后我们可以对这个辅助数组进行排序:
Arrays.sort(thirdColumnValues);
然后我们可以将排序后的值存储回原始数组:
for(int i = 0; i < array.length; i++) {
array[i][2] = thirdColumnValues[i];
}
您可以使用自定义的比较器
按第三个元素比较数组。
我们可以使用以下比较器:
(a1, a2) -> Integer.compare(a1[2], a2[2])
它接受两个数组作为参数,并返回Integer的结果。在第三个元素上比较()。
例如:
int[][] array = {{1, 5, 3}, {2, 6, 4}, {12, 10, 1}, {30, 75, 1}};
Arrays.sort(array, (a1, a2) -> Integer.compare(a1[2], a2[2]));
System.out.println(Arrays.deepToString(array));
输出:
[[12, 10, 1], [30, 75, 1], [1, 5, 3], [2, 6, 4]]
问题内容: 我将向您展示有关该问题的目的的示例。我之前拥有的数组以及排序后如何使用它: 之前: 之后: 我们在int矩阵中工作: 排序基于第二列Weight.Am,以查找对数据数组进行排序的过程。 我尝试了这个,但不幸的是我没有找到正确的泡菜排序方法。请问有帮助吗? 问题答案: 使用带有自定义。 作为shmosel 下文提到的,与Java 8中,您可以使用:
问题内容: 请原谅我这是多余的还是超基本的。我要从R进入Python / Numpy,并且很难在脑海里翻转事物。 我有一个维数组,我想使用索引值的另一个n维数组进行排序。我知道我可以将其包装成一个循环,但是似乎应该有一种非常简洁的Numpyonic方式将其击败并提交。这是设置n = 2的问题的示例代码: 所以现在我有一个2 x 5的随机数数组和2 x 5的索引。我已经阅读了约10次帮助,但显然我的
问题内容: 在Java中,我的数组中有一个数据,如下所示 我想根据第一列对其进行排序,所以我的最终数据可以像这样 第一列是格式为“ yyyy.MM.dd HH:mm”的日期,第二列是字符串。 问题答案: 根据一列 对二维数组进行排序第一列是日期格式为“ yyyy.MM.dd HH:mm”的日期,第二列是字符串。 因为您说的是二维数组,所以我假设“格式日期…”表示字符串。这是用于对String []
我试图在不使用预定义方法或数组列表的情况下对2d数组进行排序。 我想把这个定为 我尝试了很多方法,成功地订购了第一个元素,但添加第二个元素没有成功。我不张贴我的工作,因为它是不成功的任何建议将不胜感激
尝试编写一个Python函数:def compare_lengths(x,y,z) 它接受三个数组作为参数,检查它们的长度,并按长度顺序将它们作为三个数组返回。 例如,如果函数接受[1,2,3]、[10,20,30,40]和[65,32,7]作为输入,则希望它返回([1,2,3]、[65,32,7]、[10,20,30,40])或([65,32,7]、[1,2,3]、[10,20,30,40])