第一次在这里发布。我试图了解这种Java排序方法实际上是如何对数组进行排序的。我已经使用过Java可视化工具,但对我来说仍然没有意义。我知道sort方法正在接收数组,然后一次使用两个元素将它们提交给表达式(第二个数字减去第一个数字),但是我不明白如何使用此值对数组进行排序:
Arrays.sort(arrayList,(Integer number1, Integer number2) -> number2 - number1)
(arrayList元素可以是您想要的任何整数)
问题来源:Stack Overflow
如果比较器功能返回正值,则将交换数字。=>如果数字2>数字1,则(数字2-数字1)> 0(正数)=>交换=>数字2将放在数字1之前。
您可以在Comparator.compare函数中查看详细信息:
Arrays.sort(values, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o2 > o1) {
return 1; // need swap
} else if (o2 < o1) {
return -1; // no swap
}
return 0; // no swap
}
});
}
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。