Arrays.sort(students,(s1, s2) -> { if (s1.getMath() != s2.getMath()) { return s2.getMath() - s1.getMath(); } else { return s1.getId() - s2.getId(); } });什么意思
时间: 2023-06-24 16:06:35 浏览: 154
深入理解java中Arrays.sort()的用法
这段代码使用了Java的Lambda表达式来对一个学生数组进行排序。排序规则是首先按学生的数学成绩降序排列,如果两个学生的数学成绩相同,则按照学生的ID升序排列。
具体来说,`Arrays.sort()`方法用于对数组进行排序,第一个参数是要排序的数组,第二个参数是一个Lambda表达式,指定了排序的规则。Lambda表达式接受两个参数`s1`和`s2`,表示数组中的两个学生对象。Lambda表达式的返回值表示`s1`和`s2`的比较结果,如果返回值为负数,则`s1`排在`s2`前面,如果返回值为正数,则`s2`排在`s1`前面,如果返回值为0,则`s1`和`s2`相等,位置不变。
在Lambda表达式中,首先比较两个学生的数学成绩,如果不相等,则返回它们数学成绩的差值(负数表示`s1`的数学成绩更高,排在`s2`前面)。如果数学成绩相等,则比较它们的ID,返回ID的差值(正数表示`s1`的ID更小,排在`s2`前面)。这样就可以实现按照指定规则对学生数组进行排序。
阅读全文