对象实体如下
@Data
@Accessors(chain = true)
@ApiModel("车辆位置信息模型")
public class BicycleLocationModel implements Serializable {
@ApiModelProperty("纬度")
private Double latitude;
@ApiModelProperty("经度")
private Double longitude;
@ApiModelProperty("时间点")
private long gt;
}
根据对象某个字段,比如gt进行排序
构造如下方法,其中正序排序如下
方法一
private void sort(ArrayList<BicycleLocationModel> bicycleLocationModels){
bicycleLocationModels.sort(
Comparator.comparing(bicycleLocationModel -> bicycleLocationModel.getGt())
);
}
方法二
bicycleLocationModels.sort((b1, b2) -> {
Long t1 = b1.getGt();
Long t2 = b2.getGt();
return t1.compareTo(t2);//正序排序
});
也可以直接在sort方法中传入java中提供的逆序比较器实现逆序排序
Collections.reverseOrder();
API的解释:
返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。(自然顺序是通过对象自身的 compareTo 方法强行排序的。)此方法允许使用单个语句,以逆自然顺序对实现了 Comparable 接口的对象 collection(或数组)进行排序(或维护)
具体实现如下:
方法一
private void sort(ArrayList<BicycleLocationModel> bicycleLocationModels){
bicycleLocationModels.sort(
Comparator.comparing(bicycleLocationModel -> bicycleLocationModel.getGt(),Collections.reverseOrder())
);
}
方法二
bicycleLocationModels.sort((b1, b2) -> {
Long t1 = b1.getGt();
Long t2 = b2.getGt();
return t2.compareTo(t1);//倒序排序
});