码迷,mamicode.com
首页 > 其他好文 > 详细

简谈Comparable和Comparator区别

时间:2015-08-25 21:29:02      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

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

 

简谈Comparable和Comparator区别

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!