Comparable是排序接口;若一个类实现了Comparable接口,就意味着“该类支持排序”。
而Comparator是比较器接口;我们若需要控制某个类的次序,可以新建一个“该类的比较器”来进行排序。
我们不难发现:Comparable相当于“内部比较器”,而Comparator相当于“外部比较器”。
下面两个例子是对Node的count值进行比较
Comparable写法
class Node implements Comparable<Node>{
int num;
int count;
public Node(int num){
this.count = 0;
this.num = num;
}
@Override
public int compareTo(Node o){
return this.count - o.count;
}
}
Comparator写法
private Comparator<Node> cmp = new Comparator<Node>(){
public int compare(Node a, Node b){
return a.count - b.count;
}
};
No comments:
Post a Comment