我将向您展示有关该问题的目的的示例。我之前拥有的数组以及排序后如何使用它:
之前:
Box Weight Priority 1 50 5 2 30 8 3 90 6 4 20 7 5 80 9
之后:
Box Weight Priority 3 90 6 5 80 9 1 50 5 2 30 8 4 20 7
我们在int矩阵中工作:
data= new int[BoxNumber][3];
排序基于第二列Weight.Am,以查找对数据数组进行排序的过程。
public void sortC(int[][] temp) { if (temp.length >= 2) { for (int i = 1; i <= temp.length - 1; i++) { int[] hold = temp[i]; int[] holdP = temp[i-1]; int j = i; while (j > 0 && hold[1] < holdP[1]) // 1 represents the reference of sorting { hold = temp[j]; holdP = temp[j-1]; temp[j] = holdP; temp[j-1] = hold; j--; } } } } sortC(data);
我尝试了这个,但不幸的是我没有找到正确的泡菜排序方法。请问有帮助吗?
使用java.util.Arrays.sort带有自定义Comparator。
java.util.Arrays.sort
Comparator
int[][] temp = { { 1, 50, 5 }, { 2, 30, 8 }, { 3, 90, 6 }, { 4, 20, 7 }, { 5, 80, 9 }, }; Arrays.sort(temp, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { return Integer.compare(o2[1], o1[1]); } });
作为shmosel 下文提到的,与Java 8中,您可以使用:
Arrays.sort(temp, Comparator.comparingInt(arr -> arr[1]));