java - 为什么在此逻辑中使用 -1,1,0 ?

标签 java sorting collections

Collections.sort(al,(s1,s2)->{

            return s1.id<s2.id?-1:s1.id>s2.id?1:s1.marks>s2.marks?-1:0;
        });

为什么在这个逻辑中使用-1,1,0,请告诉我

最佳答案

我重写了这个

return s1.id<s2.id?-1:s1.id>s2.id?1:s1.marks>s2.marks?-1:0;

下面这段代码更容易理解

if (s1.id < s2.id)
{
    return -1;
}
else
{
    if (s1.id > s2.id)
    {
        return 1;
    }
    else
    {
        if (s1.marks>s2.marks)
        {
            return -1;
        }
        else
        {
            return 0;
        }
    }
}

关于-1、0、1,请阅读Comparator

a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

关于java - 为什么在此逻辑中使用 -1,1,0 ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53699763/

相关文章:

jquery - 对由 Json 数组填充的 JQuery 列表进行排序

java - 在 Java 中使用 Object 类?

java - 如何通过java服务器使用FCM向android设备发送推送通知?

c - 反转从文件加载的 1GB 字符串

java - 如何使用 HashMap 查找字符串数组的重复条目并使它们为空

c# - 使用多个键创建字典并使用其中一个键获取值

java - 将 CSV 文件中的数据获取到自定义收集器中

java - 找不到参数的方法 compile() [com.android.support :design:25. 1.0]

java - 为什么Java泛型不能用于静态方法?

python:组合排序键函数 itemgetter 和 str.lower