简谈Comparable和Comparator区别

时间:2015-08-25 21:28:39   收藏:0   阅读:144

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

 

原文:http://www.cnblogs.com/gsbm/p/4758519.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!