Java 多重条件运算符

Java 多重条件运算符,java,Java,我熟悉三元条件运算符中的多个条件,如下所示: ( condition A ? value A : ( condition B ? value B : ( condition C ? value C : ... ) ) ) 但我无法理解下面的代码是如何工作的(假设函数返回一个整数: return (co1.Nr() < co2.Nr() ? -1 : ( co1.Nr() == co2.Nr() ? (co1.Id() < c

我熟悉三元条件运算符中的多个条件,如下所示:

( condition A ? value A :
  ( condition B ? value B : 
    ( condition C ? value C :
       ...
    )
  )
)
但我无法理解下面的代码是如何工作的(假设函数返回一个整数:

return (co1.Nr() < co2.Nr() ? -1 :
         ( co1.Nr() == co2.Nr() ? (co1.Id() < co2.Id() ? -1 : 
          (co1.Id() == co2.Id() ? 0 : 1)) : 1;
返回(co1.Nr()

你能解释一下吗?

这是一种主要和次要排序:按Nr排序,如果相等,则按Id排序。返回-1、0和1是用于排序的比较测试的标准。

这是一种主要和次要排序:按Nr排序,如果相等,则按Id排序。返回-1、0和1是用于比较测试的标准用于排序。

如果co1.Nr()返回-1
if co1.Nr() < co2.Nr() return -1
else if co1.Nr() == co2.Nr() then
    if co1.Id() < co2.Id() return  -1 
    else if co1.Id() == co2.Id() return 0 
    else return 1
else return 1
否则,如果co1.Nr()=co2.Nr(),则 如果co1.Id()
如果co1.Nr()返回-1
否则,如果co1.Nr()=co2.Nr(),则
如果co1.Id() >打破它,理解。对于EX:考虑第一部分。

return (co1.Nr() < co2.Nr() ? -1 : (all_other_codes);
如果
co1.Nr()==co2.Nr()
true,则返回

(co1.Id() < co2.Id() ? -1 : 
              (co1.Id() == co2.Id() ? 0 : 1))
(co1.Id()

<返回>代码> 1 < /代码> ./p> < p>断开并理解。对于EX:考虑第一部分。

return (co1.Nr() < co2.Nr() ? -1 : (all_other_codes);
如果
co1.Nr()==co2.Nr()
true,则返回

(co1.Id() < co2.Id() ? -1 : 
              (co1.Id() == co2.Id() ? 0 : 1))
(co1.Id()

否则返回
1

以下条件映射

if(co1.Nr() < co2.Nr())
    return -1;
else if(co1.Nr() == co2.Nr())
    if(co1.Id() < co2.Id())
        return -1;
    else if(co1.Id() == co2.Id())
        return 0;
    else
        return 1;
else
    return 1;
if(co1.Nr()
条件映射到以下

if(co1.Nr() < co2.Nr())
    return -1;
else if(co1.Nr() == co2.Nr())
    if(co1.Id() < co2.Id())
        return -1;
    else if(co1.Id() == co2.Id())
        return 0;
    else
        return 1;
else
    return 1;
if(co1.Nr()
基本上,这就是代码对if语句的作用

if (co1.Nr()< co2.Nr()){
        return -1;
    }else if (co1.Nr()==co2.Nr()){
        if (co1.Id() <co2.Id()){
            return -1;
        }else if( co1.Id() == co2.Id()){
            return 0;

        }else{
            return 1;
        }
    }else
    {
        return 1;
    }
if(co1.Nr()if(co1.Id()基本上这就是代码对if语句的作用

if (co1.Nr()< co2.Nr()){
        return -1;
    }else if (co1.Nr()==co2.Nr()){
        if (co1.Id() <co2.Id()){
            return -1;
        }else if( co1.Id() == co2.Id()){
            return 0;

        }else{
            return 1;
        }
    }else
    {
        return 1;
    }
if(co1.Nr()if(co1.Id())这类表达式很难读懂。幸运的是,使用Java 8,您可以编写
Comparator.comparingit(MyType::Nr)。然后编写comparingInt(MyType::Id);
您对它有什么不了解?这类表达式很难读懂。幸运的是,使用Java 8,您可以编写
Comparator.comparingit(MyType::Nr).Then comparingit(MyType::Id);
关于它,您不了解什么?