排序 LocalDateTime
Sorting LocalDateTime
如何对 LocalDateTime
个对象进行排序?
我尝试了以下方法:
Comparator<Data> comparator = new Comparator<Data>() {
@Override
public int compare(final data o1, final data o2) {
if (o1.getDate()== null || o2.getDate() == null)
return 0;
return o1.getDate().compareTo(o2.getDate());
}
};
Collections.sort(comments, comparator);
测试后我认为它是按日期排序的,但是时间部分(HH:MM:SS)被忽略了吗?
JodaTime 和 JDK 8 LocalDateTime
类 都实现了 Comparable
接口,因此您可以使用它们的自然顺序对它们进行排序。就这样
Collections.sort(data);
查看 isAfter() and isBefore()。单击文档。
也许尝试处理你的缩进,我有点不确定 if 子句中的内容。甚至可以尝试在单行代码前使用大括号 {},但这是个人喜好问题。
有两种方法可以做到。
如果日期 属性 在嵌套对象下,则按如下方式使用比较器
public int compare(Object obj1, Object obj2) {
return obj2.getInnerObj().getLocalDateTime().compareTo(obj1.getInnerObj().getLocalDateTime()); }
如果对象 属性 处的日期 属性 则
List<Object> sortedList = objectList.stream()
.sorted(Comparator.comparing(Object :: getLocalDateTime).reversed())
.collect(Collectors.toList());
如何对 LocalDateTime
个对象进行排序?
我尝试了以下方法:
Comparator<Data> comparator = new Comparator<Data>() {
@Override
public int compare(final data o1, final data o2) {
if (o1.getDate()== null || o2.getDate() == null)
return 0;
return o1.getDate().compareTo(o2.getDate());
}
};
Collections.sort(comments, comparator);
测试后我认为它是按日期排序的,但是时间部分(HH:MM:SS)被忽略了吗?
JodaTime 和 JDK 8 LocalDateTime
类 都实现了 Comparable
接口,因此您可以使用它们的自然顺序对它们进行排序。就这样
Collections.sort(data);
查看 isAfter() and isBefore()。单击文档。 也许尝试处理你的缩进,我有点不确定 if 子句中的内容。甚至可以尝试在单行代码前使用大括号 {},但这是个人喜好问题。
有两种方法可以做到。 如果日期 属性 在嵌套对象下,则按如下方式使用比较器
public int compare(Object obj1, Object obj2) {
return obj2.getInnerObj().getLocalDateTime().compareTo(obj1.getInnerObj().getLocalDateTime()); }
如果对象 属性 处的日期 属性 则
List<Object> sortedList = objectList.stream()
.sorted(Comparator.comparing(Object :: getLocalDateTime).reversed())
.collect(Collectors.toList());