java8 list 时间倒叙 与排序

发布时间 2023-03-30 10:33:46作者: 全琪俊
---------------------普通字段排序---------------------------
List<JSONObject> mapListDept=new ArrayList<>();
//重新排序
mapListDept=mapListDept.stream().sorted(Comparator.comparing(jsonObjectTest -> ((JSONObject) jsonObjectTest).getInteger("totle")).reversed()).collect(Collectors.toList());

-------------------时间字段排序--------------

List<SysUserHelloDTO> sysUserHelloDTOS = new ArrayList<>();

//按时间排序倒叙
sysUserHelloDTOS.sort((t1,t2)->t2.getCreateTime().compareTo(t1.getCreateTime()));

sysUserHelloDTOS=sysUserHelloDTOS.stream().sorted(Comparator.comparing(jsonObjectTest -> ((JSONObject) jsonObjectTest).getInteger("totle")).reversed()).collect(Collectors.toList());
/**
* 将字符串转日期成Long类型的时间戳,格式为:yyyy-MM-dd HH:mm:ss
*/
public static Long convertTimeToLong(String time) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parse = LocalDateTime.parse(time, formatter);
return LocalDateTime.from(parse).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
}


sysUserHelloDTOS=sysUserHelloDTOS.stream().sorted((t1,t2) ->
Long.compare(convertAllTimeToLong(t2.getCreateTime()),
convertAllTimeToLong(t1.getCreateTime()))).
collect(Collectors.toList());


/**
* 将字符串转日期成Long类型的时间戳,格式为:yyyy-MM-dd HH:mm:ss
*/
public static Long convertAllTimeToLong(LocalDateTime parse) {
return LocalDateTime.from(parse).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
}