Java基础之Comparator比较器接口使用原理
2017-04-26 09:51
351 查看
路人宅 2017-04-26 00:22
java.util.Comparator是比较器接口,如果我们需要控制某个类的次序并且该类本身不支持排序,那么就可以建立一个类比较器来进行排序,实现方式很简单只需要实现java.util.Comparator接口。
java.util.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.util.Comparator接口中降序升序,可以这样理解:
假如A的值大于B,你返回1,此时调用Collections.sort()函数就是升序;假如A的值大于B,你返回-1,此时调用Collections.sort()函数就是降序。
java.util.Comparator是比较器接口,如果我们需要控制某个类的次序并且该类本身不支持排序,那么就可以建立一个类比较器来进行排序,实现方式很简单只需要实现java.util.Comparator接口。
java.util.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.util.Comparator接口中降序升序,可以这样理解:
假如A的值大于B,你返回1,此时调用Collections.sort()函数就是升序;假如A的值大于B,你返回-1,此时调用Collections.sort()函数就是降序。
相关文章推荐
- Comparator比较器接口使用原理
- Java基础之一组有用的类——使用比较器对数组排序(TrySortingWithComparator)
- 黑马程序员--Java基础加强--15.利用反射操作泛型IV【通过反射Method解析泛型方法思路】【通过Method对四种Type子接口类型进行解剖】【使用递归对任意复合泛型类型进行彻底解剖】【个人
- Java基础之线程——使用Runnable接口(JumbleNames)
- 使用Java中Comparator接口实现自定义排序
- Java基础知识强化之集合框架笔记47:Set集合之TreeSet保证元素唯一性和比较器排序的原理及代码实现(比较器排序)
- java底层比较器Comparable和Comparator比较对象时的使用
- (java基础知识)HashMap排序,Comparator接口详解
- [Java]有关比较器(Comparator接口)的用法及对象数组排序问题
- java-集合类(3)-实现比较器(Comparator)接口-LinkedList针对插入删除、开始处增加元素
- JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)
- Java中Comparator接口和Comparable接口的使用
- JAVA外部比较器:实现Comparator接口
- java比较器comparator使用示例分享
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- Java基础之TreeSet集合使用泛型、比较器排序示例:
- java使用Comparator与Comparable接口对对象排序
- java比较器Comparable和Comparator的使用
- 黑马程序员——Java基础--继承、多态、抽象、接口联合使用的案例
- java Comparator接口和PriorityQueue优先级队列的使用