我的java代码中的一行是不可理解的

yos*_*sra 2 java

任何人都可以帮我理解这一行吗?我尝试用"if .. else"转换它,但它没有用.提前致谢.

return (patient1.isEmergencyCase() == patient2.isEmergencyCase()) ? (Integer.valueOf(patient1.getId()).compareTo(patient2.getId())) : (patient1.isEmergencyCase() ? -1 : 1);
Run Code Online (Sandbox Code Playgroud)

Flo*_*etz 5

if (patient1.isEmergencyCase() == patient2.isEmergencyCase()) {
    return Integer.valueOf(patient1.getId()).compareTo(patient2.getId());
} else if (patient1.isEmergencyCase() ) {
    return -1;
} else {
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

换句话说,这是一种排序,可能决定哪个患者是第一位的.您通常会在compareTo方法中找到这样的代码,该方法通常用于对列表进行排序,在这种情况下,用于定义谁以哪种顺序"服务".

如果partient1是"较小/较早/等",则返回-1,如果两者都是紧急情况且患者1的id较低或者如果仅患者1是紧急情况,则发生,否则返回1(或0,都是紧急情况)案例及其ID等于).

如果概念尚不清楚,您可以查看:可比较.