用Comparator 是策略模式(strategy design pattern),就是不改变对象自身,而用一个策略对象(strategy object)来改变它的行为。 Comparator可以看成一种算法的实现,将算法和数据分离。 应用场景 Comparator也可以在下面两种环境下使用: 1、类的设计师没有考虑到比较问题而没有实现Comparable,可以通过Comparator来实现排序而...
2. 实现Comparable接口的方式比实现Comparator的耦合性要强一点。如果要修改比较算法,则需要修改Comparable接口的实现类。 而实现Comparator的类是在外部进行比较的,不需要对实现类有任何修改。
*/publicclassUserComparable implements Comparable<UserComparable>{privateString name;privateint age;publicUserComparable(){}publicUserComparable(String name,Integer age){this.name=name;this.age=age;}publicStringgetName(){returnname;}publicvoidsetName(String name){this.name=name;}publicIntegergetAge(){...
Comparable和Comparator接口是用来对自定义的class比较大小的。 Comparator和 Comparable的区别: Comparator定义在Person的外部而 Comparable定义在Person的内部。 publicclassPersionimplementsComparable{..比较Person的大小..}, 接口提供compareTo()方法,因为已经实现了比较器,那么Person现在是一个可以比较大小的对象了,它的比...
Comparable与Comparator (1) 中记录了Comparator的基本用法。为了加深印象,这里写了个统计单词出现频率的demo。主要用到HashMap、Comparator比较器以及正则表达式的一些知识。使用比较器的目的是按单词出现的频次,由高到低对HashMap进行排序,便于观察结果。 一、具体代码 import java.util.*; public class test { public...
这样是使用排序的时候,只要你指定一个新的规则,就会按照新的规则来排序,而不需要再变更BeautyGirl类。例如,你可以按照身高优先、年龄次之的排序。 总结:两者的区别就在于排序规则的制定,如果排序规则善变,那么使用comparator是个好办法,如果规则固定,实现comparable更好,至少少写一个类。
04:08 91、API介绍 09:30 92、异常的介绍 18:10 93、异常捕获和注意事项 40:38 94、自定义异常对象 08:55 95、Object的toString方法 14:10 96、Object的equals方法 12:31 97、Object的clone方法 06:22 98、Comparable接口 10:08 99、Comparator接口 05:58 82...
5>Comparable接口和Comparator接口的作用和区别? 两者是什么? 首先两者都是一种比较的规则的接口,其实现类根据其设定的比较规则去对元素进行比较,在创建TreeSet对象的时候,必须声明比较规则 为什么会存在两者? 第一,comparable是一种基本的比较接口,支持集合中的对象互相比较,当然如果将实现类的泛型改为其他包装类型,也...
4、== 和 equals 比较有什么区别? 5、public,private,protected,默认的区别? 6、this 和 super 有什么区别? 7、short s1 = 1; s1 += 1;有错吗? 8、short s1 = 1; s1 = s1 + 1;有错吗? 9、float n = 1.8 有错吗? 10、i++ 和 ++i 的区别? 11、while 和 do while 有啥区别? 12、如...