1.对象
@Data
public class CustInfo{
private static final long serialVersionUID = -5035380693671995905L;
private String uuid;
//客户名称
private String custName;
private String lastUpdateTm;
private String distance; //距离
}
2.集合单字段排序
Comparator<CustInfo> cmp =null;
//升序
// cmp = Comparator.nullsLast(Comparator.comparing(CustInfo::getDistance, Comparator.nullsLast(String::compareTo)));
//降序
Comparator.nullsLast(Comparator.comparing(CustInfo::getDistance, Comparator.nullsLast(String::compareTo))).reversed();
list = list.stream().sorted(cmp).collect(Collectors.toList());
3.集合多字段组合排序
Comparator<CustInfo> cmp1 =null;
cmp1 = Comparator.nullsLast(Comparator.comparing(CustInfo::getDistance, Comparator.nullsLast(String::compareTo)));
Comparator<CustInfo> cmp2 =null;
cmp2 = Comparator.nullsLast(Comparator.comparing(CustInfo::getLastUpdateTm,Comparator.nullsLast(String::compareTo)));
//组合排序,先根据距离排序,再根据时间排序
Comparator<CustInfo> finalCmp = cmp1.thenComparing(cmp2);
list = list.stream().sorted(finalCmp).collect(Collectors.toList());