关于比较器的返回值
来源: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对象中的年龄,实现降序。
同学上面的三条语句都是用来实现升序的
祝学习愉快
相似问题