开发者社区> 问答> 正文

对这行Java代码如何以降序排序感到困惑

第一次在这里发布。我试图了解这种Java排序方法实际上是如何对数组进行排序的。我已经使用过Java可视化工具,但对我来说仍然没有意义。我知道sort方法正在接收数组,然后一次使用两个元素将它们提交给表达式(第二个数字减去第一个数字),但是我不明白如何使用此值对数组进行排序:

Arrays.sort(arrayList,(Integer number1, Integer number2) -> number2 - number1)

(arrayList元素可以是您想要的任何整数)

问题来源:Stack Overflow

展开
收起
montos 2020-03-21 21:24:13 2181 0
2 条回答
写回答
取消 提交回答
  • 个人对建模比较关注

    可以把数组转为list,通过这个进行排序。

    2020-03-25 17:39:46
    赞同 展开评论 打赏
  • 如果比较器功能返回正值,则将交换数字。=>如果数字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

    2020-03-21 21:25:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载