gpt4 book ai didi

java - 为什么当我返回 object1-object2 时,自制比较起作用

转载 作者:行者123 更新时间:2023-12-02 09:37:17 25 4
gpt4 key购买 nike

我想了解为什么 o2 - o1 返回给我一个排序列表,我不明白其背后的逻辑。这是我做过的一个方法,但我不明白为什么这个 o2-o1 对我的 ArrayList 进行排序。

我尝试在互联网上查找但没有找到任何答案。

    ArrayList<Integer> array = new ArrayList<Integer>();
array.add(1);
array.add(3);
array.add(2);
array.add(5);
array.add(4);
array.add(6);
array.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
return o2 - o1;
}
});
for (int s : array) {
System.out.println(s);
}

最佳答案

ArrayList继承sort来自列表。它需要一个 Comparator 来通过其 compare 比较列表条目。方法。 compare 的 JavaDoc 说:

Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

这就是你的代码的作用。 o2 - o1 自动将 Integer 实例拆箱为 int,然后从 中减去 o1 值o2 值。如果 o1 大于 o2,则结果为负整数;如果它们相同,则结果为零;如果 o1 为正整数,则结果为正整数。小于 o2

sort 使用值对重复调用比较器的 compare,并使用这些返回值对列表进行排序。

关于java - 为什么当我返回 object1-object2 时,自制比较起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57391280/

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