Java基础之Comparator比较器接口使用原理

来源:互联网 发布:知与行杂志版面费 编辑:程序博客网 时间:2024/06/01 09:52

java.util.Comparator是比较器接口,如果我们需要控制某个类的次序并且该类本身不支持排序,那么就可以建立一个类比较器来进行排序,实现方式很简单只需要实现java.util.Comparator接口。

java.util.Comparator接口只包括两个函数,它的源码如下图:

Java基础之Comparator比较器接口使用原理

1) 若一个类要实现java.util.Comparator接口:它一定要实现int compare(T o1, T o2) 函数,而另一个可以不实现boolean equals(Object obj) 函数

2)int compare(T o1, T o2) 是比较o1和o2的大小

如果返回值为负数意味着o1比o2小,否则返回为零意味着o1等于o2,返回为正数意味着o1大于o2

下面我简单举例演示比较集合内对象数字大小,其中实体类,具体代码如下图:

Java基础之Comparator比较器接口使用原理

本地应用测试,具体代码如下图:

Java基础之Comparator比较器接口使用原理

运行结果如下图:

Java基础之Comparator比较器接口使用原理

java.util.Comparator接口中降序升序,可以这样理解:

假如A的值大于B,你返回1,此时调用Collections.sort()函数就是升序;假如A的值大于B,你返回-1,此时调用Collections.sort()函数就是降序。

0 0