要按日期对ArrayList
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Date;
public class DateComparator implements Comparator {
private SimpleDateFormat dateFormat;
public DateComparator(String pattern) {
dateFormat = new SimpleDateFormat(pattern);
}
@Override
public int compare(String str1, String str2) {
try {
Date date1 = dateFormat.parse(str1.substring(str1.length()/2));
Date date2 = dateFormat.parse(str2.substring(str2.length()/2));
return date1.compareTo(date2);
} catch (ParseException e) {
e.printStackTrace();
return 0;
}
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List dates = new ArrayList<>();
dates.add("20220101abc");
dates.add("20211231def");
dates.add("20220102xyz");
// 创建Comparator对象
DateComparator dateComparator = new DateComparator("yyyyMMdd");
// 对ArrayList进行排序
Collections.sort(dates, dateComparator);
// 打印排序结果
for (String date : dates) {
System.out.println(date);
}
}
}
上述代码中,通过创建DateComparator对象并传入日期格式pattern(例如yyyyMMdd)来指定日期的格式。然后,使用Collections.sort()方法对ArrayList进行排序,传入Comparator对象来指定排序规则。最后,打印排序结果。
运行以上代码,将按照日期对ArrayList进行排序,并且不包括字符串的前半部分。输出结果为:
20220101abc
20220102xyz
20211231def
下一篇:按日期对表进行分区