这是我未分类的数组:
P B A
1 135 0
2 102 100
3 56 100
4 148 0
5 125 200
6 65 200
这是我的当前数组在我对其进行排序之后的结果,这是我得到的输出
P B A
1 135 0
4 148 0
3 56 100
2 102 100
6 65 200
5 125 200
我希望我的数组按照B
这个例子的最大数字排序A
。
P B A
4 148 0
1 135 0
2 102 100
3 56 100
5 125 200
6 65 200
这是我目前的代码:
Arrays.sort(x, new Comparator<int[]>() {
public int compare(int[] o1, int[] o2) {
int ret = Integer.compare(o1[2], o2[2]);
// if the entries are equal at index 2, compare index 1
if (0 == ret) {
ret = Integer.compare(o1[1], o2[1]);
}
return (ret);
}
});
答案 0 :(得分:1)
只需反转比较器中B
的比较:
if (ret == 0) {
ret = Integer.compare(o2[1] , o1[1]);
}
答案 1 :(得分:0)
据我所知,第二个排序标准(第一个字段的排序标准)的顺序相反,因此请恢复比较结果(注意添加的-
运算符):
if (0 == ret) {
ret = -Integer.compare(o1[1], o2[1]);
}