关于比较器的返回值

来源:5-5 关于TreeSet的使用

hxcchan

2020-07-29 03:12:55

老师我之前听说在Comparator接口中,返回的值是有优先级的,负数是高优先级,正数是低优先级。比如:

return o1-o2; //返回的正序排列结果。
return o1 < o2 ? -1 : 1; //返回正序结果。
return o1 > o2 ? 1 : -1; // 返回倒序结果。

这两种写法有什么区别吗?直接相减会不会有什么问题,比如溢出等。

写回答

1回答

好帮手慕阿园

2020-07-29

同学你好,这两种写法都可以实现排序,底层采用的排序方法是一样的

根据返回的运算结果进行排序:

 当返回为正整数时,表示o1对象的年龄小于o2对象中的年龄。

 return o1 >o2 ? 1 : -1; 返回1,表示o1对象的年龄小于o2对象中的年龄,升序。

 当返回为0时,表示o1对象的年龄等于o2对象中的年龄。

当返回为负整数时,表示o1对象的年龄大于o2对象中的年龄。

return o1 > o2 ? -1 : 1;返回-1,表示o1对象的年龄大于o2对象中的年龄,实现降序。

同学上面的三条语句都是用来实现升序的

祝学习愉快

0

0 学习 · 16556 问题

查看课程

相似问题