gpt4 book ai didi

java - 如何比较对象并对Java中的列表进行排序

转载 作者:行者123 更新时间:2023-11-30 07:08:55 26 4
gpt4 key购买 nike

我有一个对象类:

public class FileDetails  {

String filePath;
String fileName;
String timeStamp;
}

现在我有一个 FileDetails 列表,我想按日期排序。

我正在尝试这样排序:

public FileDetails getMaxLastModified(List<FileDetails> fileDetails) {

return Collections.max(fileDetails, new LastModifiedFileDetailsComparator());
}

我的比较器是:

public class LastModifiedFileDetailsComparator implements
Comparator<FileDetails> {

public int compare(FileDetails f1, FileDetails f2) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = null;
Date date2 = null;

try {
date1 = sdf.parse(f1.getTimeStamp());
date2 = sdf.parse(f2.getTimeStamp());

} catch (ParseException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}


if(date1.compareTo(date2)>0){ return f1; }else
if(date1.compareTo(date2)<0){ return f2; }
else { return f1; }

}
}

我在比较器中遇到错误:类型不匹配:无法从 FileDetails 转换为 int。谁能告诉我正确的方法?

最佳答案

如果第一个对象“小于”第二个对象,您的比较器应该返回一个负数,如果它们“相等”则返回0,返回一个正数如果第一个对象“大于”第二个对象。它不应返回其中一个对象。

compare method返回一个 int,它的 Javadocs 指出:

Returns:

a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

关于java - 如何比较对象并对Java中的列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23700563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com