在实际的业务需求中,很多时候都需要自定义排序比较规则,以下来总结下在Java,Hadoop,和Spark下等不同场景下如何自定义排序比较规则。
Java两种方式:
1.实现Comparable接口,实现其中得compareTo方法
2.实现Comparator接口,实现其中得compare方法
case1如下:
public class SortBean implements Comparable<SortBean>{
String name;
int score;
public SortBean(String name,int score) {
this.name = name;
this.score = score;
}
public int compareTo(SortBean o) {
//字符内容相同,按照整形比较大小
if(this.name.equals(o.name)){
return this.score-o.score;
}
//字符内容不同,按照字符内容比较
return this.name.compareTo(o.name);
}
@Override
public String toString() {
return name+"\t"+score;
}
}
case2以及测试
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class MyComparator implemen