您的位置:首页 > 编程语言 > Java开发

Comparable和Comparator的区别

2017-03-05 23:58 253 查看
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java Comparable Comparator