comparable 与comparator的区别?
(这是这两天接的一个帖子,整理一下)
Comparable & Comparator 都是用来实现集合中的排序的,
只是 Comparable 是在集合内部定义的方法实现的排序,
Comparator 是在集合外部实现的排序,
所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。
Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 String、Integer 自己就可以完成比较大小操作)
而 Comparator 是一个专用的比较器,
当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大小的比较。
可以说一个是自已完成比较,一个是外部程序实现比较的差别而已。
用 Comparator 是策略模式(strategy design pattern),就是不改变对象自身,而用一个策略对象(strategy object)来改变它的行为。
比如:你想对整数采用绝对值大小来排序,Integer 是不符合要求的,你不需要去修改 Integer 类(实际上你也不能这么做)去改变它的排序行为,只要使用一个实现了 Comparator 接口的对象来实现控制它的排序就行了
Camparable一般在定义类的就决定要不要提供compareTo(Object obj)方法
Comparator就是一个比较器,当类本身没有实现Camparable而又需要进行比较的时候,一般实现这个接口,然后用Arrays.sort()来比较
分享到:
相关推荐
Comparable&Comparator区别,看完就明白了
详细的介绍了Java中Comparable与Comparator的区别
Comparable与Comparator的区别Java开发Java经验技巧共3页.pdf.zip
本文,先介绍Comparable 和Comparator两个接口,以及它们的差异;接着,通过示例,对它们的使用方法进行说明
Java中Comparable和Comparator的区别共3页.pdf.zip
comparator接口与Comparable接口的区别
NULL 博文链接:https://hellogava.iteye.com/blog/1570101
主要介绍了java 中Comparable与Comparator详解与比较的相关资料,需要的朋友可以参考下
要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode
主要介绍了详解Java中Comparable和Comparator接口的区别的相关资料,希望通过本文大家能彻底掌握这部分内容,需要的朋友可以参考下
java排序Comparator和Comparable
通过简单的例子初步了解Comparable和Comparator的使用,注释很详细
什么是 Comparable 和 Comparator 接口?它们有什么区别? 如何使用 ConcurrentHashMap 类来实现线程安全的映射? 如何避免在多线程环境下对同一集合的并发修改? 如何使用 PriorityQueue 类实现一个最小堆? 如何...
主要介绍了Java 比较接口comparable与comparator区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Java Comparable和Comparator对比详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
用Comparator 的好处是不需要修改源代码, 而是另外实现一个比较器, 当某个自定义的对象需要作比较的时候,把比较器和对象一起传递过去就可以比大小了, 并
教你学会Comparator和Comparable
NULL 博文链接:https://gghaomm.iteye.com/blog/1753970
主要介绍了Java Comparable 和 Comparator 的详解及区别的相关资料,Comparable 自然排序和Comparator 定制排序的实例,需要的朋友可以参考下