使用内置排序功能对2d数组进行排序 我正在使用Arrays.sort()函数对2d数组(int [] []数组)进行排序。由于我想根据第一个元素对其进行排序。例如,基于第一个元素的{{2,3},{1,4}},数组将为{{1,4},{2,3}}。所以我重写了比较功能。
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2){
if(o1[0] < o2[0]){
return -1;
} else if (o1[0] > o2[0]) {
return 1;
} else {
return 0;
}
}
})
我知道这种工作。但是我不明白这种比较是如何进行的。我在想
new Comparator<int[]>
应该
new Comparator<int[][]>
因为这是二维数组 和内部比较功能应该进行比较
o1[0][0] and o2[0][0]
谁能帮助我理解它?
另外这是使用Arrays.sort,我可以使用Collections.sort吗?两者有什么不同?
谢谢
问题来源:stackoverflow
请记住,Java中实际上并不存在“ 2D数组”,因此您真正要处理的是“一个数组int[]”(没有内在的本质,可以防止它们的int[]长度不同)。
因此:当您进行排序时,您正在相互比较“数组int[]”的各个元素,并且由于每个元素都是一个int[],因此您的Comparator也适用于int[]。
答案来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。