zoukankan      html  css  js  c++  java
  • 比较接口:Comparable和Comparator

      Comparable和Comparator是两个用于定义对象之间比较规则的接口。

      一、public interface Comparator<T>

      Comparator接口中有两个方法(不止两个):

      1、int compare(Object obj1,Object obj2)

      obj1>obj2,返回正值;

      obj1=obj2,返回0;

      obj1<obj2,返回负值。

      通过重写compare()方法,可以改变对象排序的方式。

     

      2、boolean equals(Object obj)

      拿obj和调用该方法的对象按规则比较,相同返回true,不同返回false。

     

      二、public interface Comparable<T>

      其中只有一个方法:int compareTo(T o)

      当需要让集合对其中的对象进行排序时,可以让对象实现(也必须实现)Comparable接口,这意味着通过compareTo()定义比较规则。

     

      三、比较

      Comparable接口是一种侵入式的设计,即他必须让被排序的类中实现compareTo()方法。如果一个类是第三方提供的,此时是无法通过Comparable接口进行对象排序操作的。

      为了解决这一问题,必须使用比较器Comparator。

      集合类可以通过比较器来精确定义按照何种规则排序,Comparator可以让代码不入侵类的内部定义排序规则。

     

      显然,比较器Comparator比Comparable接口更加灵活,不入侵类,更符合单一职责的设计哲学。

      当有了新的比较方式,只需要修改比较规则类,即实现Comparator接口的类。

     

     

     

  • 相关阅读:
    一 数据库备份与恢复 2 数据库恢复 2.2 数据库重定向与重建
    附录 常用SQL语句 Dynamic SQL
    alt_disk_install 克隆系统rootvg
    Mysql版本升级
    DB29.7 HADR环境升级
    EMC VNX系列存储维护
    保存最开始的flink code,  数据是自动生成而不是通过kafka
    opentsdb restful api使用方法
    flink 和 hbase的链接
    opentsdb
  • 原文地址:https://www.cnblogs.com/bigbigbigo/p/8566930.html
Copyright © 2011-2022 走看看