• Comparable & Comparator 均为 java 接口,Comparable 位于包 java.lang 下,而 Comparator 位于包 java.util 下;
• 自定义类实现二者中的一个,便可进行比较大小。
• Comparable 一般定义在类的内部,而Comparator 一般定义在类的外部;
• 实现 Comparable 接口需要重写其 compareTo 方法,而实现 Comparator 接口需要重写其 compare 方法;
• 使用 Comparable 较为简单, 只要实现 Comparable 接口的对象就直接成为一个可以比较的对象,但是 需要修改源代码,而且由于这样做会导致代码耦合性比较高,会严重影响到代码的可扩展性;
• 用 Comparator 的好处是 不需要修改源代码,不会使代码发生强耦合 , 而是另外实现一个比较器, 当某个自定义的对象需要作比较的时,把比较器和对象一起传递过去就可以比大小 ;
网友评论