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使用的是设计模式中的策略模式。

  • 相关阅读:
    POJ2456 Aggressive cows
    Binary Search
    Leetcode1025 Divisor Game
    我的高中生活目标
    leetcode155 min stack
    Leetcode983 Minimum Cost For Tickets
    合并两个有序数组
    X的平方根
    力扣第35场双周赛
    整数反转
  • 原文地址:https://www.cnblogs.com/gsbm/p/4758519.html
Copyright © 2011-2022 走看看