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

时间:2018-12-10 05:02:36

标签: 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,请告诉我

1 个答案:

答案 0 :(得分:1)

我重写了

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

  

负整数,零或正整数作为第一个参数   小于,等于或大于秒。