zoukankan      html  css  js  c++  java
  • Java_Comparable,Comparator两接口区别

    Comparable和Comparator的区别

    根本区别

      1.Comparable是一个内比较器,Comparator是一个外比较器

        封装的包不同

          java.util.Comparator

          java.lang.Comparable

        调用方式不同:

          Comparable:实体类实现该接口,一个实体类调用compareTo方法与另一个实体类对象进行比较,obj.compareTo(obj);

          Comparator:调用实现类的compare(obj,obj)方法,进行比较

          Comparable 的方法compareTo(obj)写在比较的实体类中

          Comparable 的方法compare(obj,obj)可以是一个外部类

    拓展区别

      2.Comparable的耦合性要高一些;

        Comparable接口 适合于可以直接进行比较的对象,例如:int,Date

        Comparator接口 适合于不能进行直接比较的对象,即自己编写比较方法算法

        几乎所有自己可以和自己比较的对象都实现了Comparable接口

    共同点

        两个接口的方法返回值都是int类型,并且正数大于,负数小于,0为等于

    引用:

    Comparator
    
    Comparator可以认为是是一个外比较器,个人认为有两种情况可以使用实现Comparator接口的方式:
    
    1、一个对象不支持自己和自己比较(没有实现Comparable接口),但是又想对两个对象进行比较
    
    2、一个对象实现了Comparable接口,但是开发者认为compareTo方法中的比较方式并不是自己想要的那种比较方式
    
    Comparator接口里面有一个compare方法,方法有两个参数T o1和T o2,是泛型的表示方式,分别表示待比较的两个对象,方法返回值和Comparable接口一样是int,有三种情况:
    
    1、o1大于o2,返回正整数
    
    2、o1等于o2,返回0
    
    3、o1小于o3,返回负整数
  • 相关阅读:
    内存问题定位与解决
    CPU问题定位与解决
    数据库优化案例——————某市中心医院HIS系统
    系统隐形杀手——阻塞与等待
    SQL Server常见问题介绍及快速解决建议
    CVTE实习感想--2014.10秋招
    Spring AOP的理解
    一些Java面试问题
    举几个大数据的例子
    Java中乐观锁与悲观锁的实现
  • 原文地址:https://www.cnblogs.com/aihuadung/p/9316068.html
Copyright © 2011-2022 走看看