zoukankan      html  css  js  c++  java
  • 简谈Comparable和Comparator区别

    对于Comparable和Comparator这连个相似的接口,还是做一下比较比较好:

      Comparable Comparator
    (1)只包含一个compareTo()方法,此方法可以给两个对象排序(负,0,正) 有compare()和equals()两个方法,compare()方法用来给两个参数排序(负,0,正)

    (2)如果有一个Person类要实现比较

    写在Person类内部:

    public class Person implements Comparable{

      private int id;

      

      public int getId(){

        return id;

      }

      public int compareTo(Object o){

        return this.id - ((Person) o).getId;

      }

    }

    写在Person类外部,Person类不需要有任何变化

    public class Person{

      private int id;

      public int getId(){

        return id;

      }

    }

    public class PersonComparator implements Comparator{

      public int compare(Object o1, Object o2){

        return ((Person) o1).getId - ((Person) o2).getId;

      }

    }

    (3)使用,personList为Person的集合对象:

    Collections.sort(personList)即可进行排序

    Collections.sort(personList, new PersonComparator())即可进行排序

    其中Comparator使用的是设计模式中的策略模式。

  • 相关阅读:
    django中ckeditor富文本编辑器使用
    xadmin安装
    RabbitMQ应用示例
    windows下安装RabbitMQ
    第四章 面向对象
    第三章 模块
    git简单使用
    python中的装饰器
    Python 使用 argparse 开发命令行工具/获取命令行参数/子命令实现
    自动化运维工具 Ansible 安装、配置及使用
  • 原文地址:https://www.cnblogs.com/gsbm/p/4758519.html
Copyright © 2011-2022 走看看