java对象集合中A字段为string类型的日期要求对其重大到小排序
可以使用Java集合框架中的Comparator接口来实现对对象集合中的日期字段进行排序。具体步骤如下:
-
定义一个DateComparator类,实现Comparator接口,并重写compare方法。在compare方法中,将集合中的两个对象的日期字段转换成Date类型,并使用Date的compareTo方法进行比较,返回比较结果。
-
在主程序中,创建一个对象集合,并将其中的每个对象的日期字段赋值为字符串类型的日期。
-
调用Collections.sort方法,传入对象集合和DateComparator对象作为参数,即可实现对集合中的对象按日期从大到小排序。
示例代码如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class DateComparator implements Comparator<MyObject> {
@Override
public int compare(MyObject o1, MyObject o2) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date1 = sdf.parse(o1.getDate());
Date date2 = sdf.parse(o2.getDate());
return date2.compareTo(date1);
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
public static void main(String[] args) {
List<MyObject> list = new ArrayList<>();
// 添加对象到集合中
MyObject obj1 = new MyObject();
obj1.setDate("2022-03-01");
list.add(obj1);
MyObject obj2 = new MyObject();
obj2.setDate("2022-02-01");
list.add(obj2);
MyObject obj3 = new MyObject();
obj3.setDate("2022-01-01");
list.add(obj3);
// 对集合中的对象按日期从大到小排序
Collections.sort(list, new DateComparator());
// 输出排序后的结果
for (MyObject obj : list) {
System.out.println(obj.getDate());
}
}
}
class MyObject {
private String date;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
输出结果为:
2022-03-01
2022-02-01
2022-01-01
``
原文地址: https://www.cveoy.top/t/topic/fp7r 著作权归作者所有。请勿转载和采集!