Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 列表排序的其他方法<;日期>;代号一_Java_Codenameone - Fatal编程技术网

Java 列表排序的其他方法<;日期>;代号一

Java 列表排序的其他方法<;日期>;代号一,java,codenameone,Java,Codenameone,由于代码名是完整的JavaAPI,是否有另一种排序日期列表的工作方式 我在下面尝试过,但都没有编译成功 datesList.sort(Date::compareTo); // Failed 错误:无效的方法引用DateList.sort(日期::compareTo) 错误:找不到符号cal.set(Calendar.DATE,cal.getActualMaximum(Calendar.DATE)) 我建议为sortig提供另一种解决方案。您可以使用如下连接排序: dateList =

由于代码名是完整的JavaAPI,是否有另一种排序日期列表的工作方式

我在下面尝试过,但都没有编译成功

datesList.sort(Date::compareTo); // Failed
错误:无效的方法引用DateList.sort(日期::compareTo)

错误:找不到符号cal.set(Calendar.DATE,cal.getActualMaximum(Calendar.DATE))


我建议为sortig提供另一种解决方案。您可以使用如下连接排序:

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());
    }
});
Collections.sort(datesList,newcomparator(){
公共整数比较(日期d1、日期d2){
返回Long.compare(d1.getTime(),d2.getTime());
}
});

第一个和第二个都可以正常工作,没有任何错误!在本机Java中,是的,但我的问题特别涉及到代码名1。看起来第二种方法应该可以工作,您只需要编写自己的比较。可能获取长的日期值并进行比较就足够了。Codename One是否实现了java.time,即现代java日期和时间API?
Date
类的设计很差,而且很早就过时了,因此您应该选择
Instant
或java.time中的另一个类(如果可能)。是的,它在其日历API中是这样做的。但是
java.time
在该API之外不可用。在本例中,我必须使用从我正在使用的另一个库返回的
java.Date
。你真的给了我一个主意。我将使用
Calendar
API构建我的列表,因为它实现了
compareTo
。感谢您的回答。Codename one没有包含收集器的流包。作为附加信息,Codename one具有以下方法:
DateUtil.compare(日期d1,日期d2)
@Francesco Galgani,这只适用于比较两个日期,而不是日期列表。
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());
    }
});