gpt4 book ai didi

java - 如何理解Java中比较器引发的顺序?

转载 作者:行者123 更新时间:2023-12-01 19:44:37 26 4
gpt4 key购买 nike

我对 Java 中的比较器和 Collections.sort() 感到非常困惑。我不明白比较器产生的顺序。我不清楚比较函数应该返回哪个数字来获取排序方向。我也不知道 Collections 将如何使用该比较结果对输入数据进行排序。我应该背诵它们吗?有没有更容易理解的东西?有人能为我解释一下吗?谢谢。

public int compare(Obj a, Obj b){ 
if(a.age > b.age) return 1;
if(a.age < b.age) return -1;
else return 0;
}

更新

在收到一些友好的软件工程师的一些解释后,我了解到比较器定义了集合中元素的顺序。例如,当比较 a 和 b 时,如果比较器返回 -1,则 a 应放在列表中的 b 之前。

最佳答案

要记住的关键一点是,如果比较返回正值 (>0),就会发生交换。否则不在排序算法期间。

示例:

4(a) 2(b) 6

对于升序:

a > b (4 > 2) return 1(需要在 a 和 b 之间交换,即放置 2 4 6)

对于降序:

a > b ( 2 > 4 ) return -1 (a 和 b 之间不需要交换,即放置 4 2 6,因为它已经按顺序排列)。

这个逻辑是在排序算法下实现的,所以,只要想想如果a和b已经按照你的预期排序,那么返回-1,否则返回1。

关于java - 如何理解Java中比较器引发的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53894385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com