Codename One 中 List<Date> 的其他排序方式
Other ways of sorting List<Date> in Codename One
由于代号一 not implementing 完整 Java API,是否有另一种排序日期列表的工作方式?
下面我试过了,都编译失败。
datesList.sort(Date::compareTo); // Failed
error: invalid method reference datesList.sort(Date::compareTo);
// Failed
Collections.sort(datesList, new Comparator<Date>(){
public int compare (Date d1, Date d2){
return d1.compareTo(d2);
}
});
error: cannot find symbol return d1.compareTo(d2);
获取月份最后一天的问题与以下相同:
cal.getActualMaximum(Calendar.DATE);
error: cannot find symbol cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
我建议 sortig.You 的另一个解决方案可以使用像这样的连接排序:
dateList =
datesList
.stream()
.sorted(
Comparator.comparingLong( e -> e.getTime() )
).collect(
Collectors.toList()
);
如果您还没有流式传输,请将比较方法更改为:
Collections.sort(datesList, new Comparator<Date>(){
public int compare (Date d1, Date d2){
return Long.compare( d1.getTime() , d2.getTime());
}
});
由于代号一 not implementing 完整 Java API,是否有另一种排序日期列表的工作方式?
下面我试过了,都编译失败。
datesList.sort(Date::compareTo); // Failed
error: invalid method reference datesList.sort(Date::compareTo);
// Failed
Collections.sort(datesList, new Comparator<Date>(){
public int compare (Date d1, Date d2){
return d1.compareTo(d2);
}
});
error: cannot find symbol return d1.compareTo(d2);
获取月份最后一天的问题与以下相同:
cal.getActualMaximum(Calendar.DATE);
error: cannot find symbol cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
我建议 sortig.You 的另一个解决方案可以使用像这样的连接排序:
dateList =
datesList
.stream()
.sorted(
Comparator.comparingLong( e -> e.getTime() )
).collect(
Collectors.toList()
);
如果您还没有流式传输,请将比较方法更改为:
Collections.sort(datesList, new Comparator<Date>(){
public int compare (Date d1, Date d2){
return Long.compare( d1.getTime() , d2.getTime());
}
});