在java中list.sort(Comparator.comparing(BpmOpinion::getAddDate));如果getAddDate是字符串类型的时间,我要让其按倒序排序该如何写
时间: 2024-12-17 09:28:10 浏览: 57
如果你想让包含`BpmOpinion`对象的`List`按照`getAddDate`方法返回的字符串型时间进行倒序排序(即最新的时间排在前面),只需要稍微修改一下Comparator的构造函数即可。当前的代码已经是按照升序排列(默认的自然顺序),只需改为降序排列,可以使用`reversed()`方法配合`Comparator.comparing`:
```java
import java.time.LocalDateTime; // 或者你实际使用的日期时间库
import java.time.format.DateTimeFormatter;
import java.util.Comparator;
import java.util.List;
class BpmOpinion {
private String addDate;
// getters and setters...
// 假设addDate是某种格式的字符串,这里假设DateTimeFormatter能解析它
LocalDateTime parseToDate(String dateStr) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("your_date_format_here"); // 请替换为你的实际日期格式
return LocalDateTime.parse(dateStr, formatter);
}
}
List<BpmOpinion> bpmOpinions = ...;
Comparator<BpmOpinion> dateComparator = Comparator.comparing(BpmOpinion::parseToDate)
.reversed();
bpmOpinions.sort(dateComparator);
```
这里的关键点在于`Comparator.comparing(BpmOpinion::parseToDate)`,它将每个`BpmOpinion`对象的`addDate`转换为`LocalDateTime`对象,然后`reversed()`反转了比较顺序,使得最新的日期先于旧的日期。
阅读全文
相关推荐



















