首页 > 学院 > 开发设计 > 正文

Comparable和Comparator的区别

2019-11-06 06:56:48
字体:
来源:转载
供稿:网友

Comparable和Comparator的区别可以理解为,一个是内部比较,一个是外部比较。一个是在对象自身内实现的方法,一个是在第三方对象上实现的该方法。 存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序。

可以看到,在比较的时候,comparable就会去使用this指针去比较自己和其他。 Comparator就是两个对象的比较了。

public class Domain implements Comparable<Domain>{ PRivate String str; public Domain(String str) { this.str = str; } public int compareTo(Domain domain) { if (this.str.compareTo(domain.str) > 0) return 1; else if (this.str.compareTo(domain.str) == 0) return 0; else return -1; } public String getStr() { return str; }}public class DomainComparator implements Comparator<Domain>{ public int compare(Domain domain1, Domain domain2) { if (domain1.getStr().compareTo(domain2.getStr()) > 0) return 1; else if (domain1.getStr().compareTo(domain2.getStr()) == 0) return 0; else return -1; }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表