自定义排序类 public class SubmitStatusComparator implements Comparator, Serializable{
private final static List<SubmitStatus> status = Lists.newArrayList(SubmitStatus.SUBMIT_SUCCESS, SubmitStatus.PENDING_FEEDBACK, SubmitStatus.PENDING_SUBMIT, SubmitStatus.SUBMIT_FAILURE);
@Override
public int compare(SubmitStatus o1, SubmitStatus o2) {
int index1 = status.indexOf(o1);
int index2 = status.indexOf(o2);
return index1 == index2 ? 0 : index1 > index2 ? 1 : -1;
}
}
使用
SubmitStatusComparator status = new SubmitStatusComparator(); Comparator<Taxpayer> comparator = Comparator.comparing(Taxpayer::getSubmitStatus, status) .thenComparing(Taxpayer::getTaxYear) .thenComparing(Taxpayer::getTaxMonth); taxpayers.sort(comparator);