sjtu448651346
2019-10-12 10:37
采纳率: 50%
浏览 849
已采纳

JAVA Arrays排序 Comparator的写法区别

对一个二维数组进行排序
例如:
data[0]=[1,1,1]
data[1]=[1,2,3]
data[2]=[1,2,2]
data[3]=[1,2,1]
data[4]=[1,3,4]
先按照第一个数字进行排序,然后按照第二个,最后按照第三个
正确的升序排序顺序是
1:123
2:122
3:121
4:134

我按照思路这样写
Arrays.sort(data,new Comparator(){
@Override
public int compare(int[] o1,int[] o2){
for(int k=0;k<m;k++){
return o1[k]-o2[k];
}
return 0;
}
});
结果出来之后是
123
122
121
134

但是我按照别人的修改了一下 加入了一个不等的判断就正确了
Arrays.sort(data,new Comparator(){
@Override
public int compare(int[] o1,int[] o2){
for(int k=0;k<m;k++){
if(o1[k]!=o2[k]){
return o1[k]-o2[k];
}
}
return 0;
}
});
121
122
123
134

这是为什么,我怎么感觉那个判断很多余呢?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题