我正在尝试创建一个函数,允许您按降序或升序对日期进行排序。但是,我不太确定应该如何去做。这是我到目前为止所解决的问题,但完全陷入困境:
public void sortByYear() {
String askID = JOptionPane.showInputDialog(null, "Would you like to sort by ascending or descending?");
if(askID.equalsIgnoreCase("ascending")){
for(String datePersons : personList){
String[] splitPerson = datePersons.split("_");
String date = splitPerson[5];
}
} else if(askID.equalsIgnoreCase("descending")){
}
}
我的 ArrayList
使用的格式是:ID_NAME_MAIL_PHONE_CITY_DATETIME#
在 ArrayList
中,其中包含数据,如下所示:
7_Geoffrey Wolf_fermentum.risus@malesuadaaugue.net_1-382-295-5799_Warwick_2010-03-27 09:47:41
如果我有 99 个不同日期的不同人,我该如何对他们进行排序?我用这部分来分割并查找日期:
String[] splitPerson = datePersons.split("_");
String date = splitPerson[5];
最诚挚的问候。
最佳答案
使用Arrays.sort
方法并使用自定义比较器。在比较器实现中,解析日期字符串,构造日期对象并进行比较。
即
Arrays.sort(personList, new Comparator<String>() {
public int compare(String person1, String person2) {
Date date1 = parseDate(person1);
Date date2 = parseDate(person2);
return date1.compareTo(date2);
//return date2.compareTo(date1) for reverse order
}
});
如果 personList
是列表/集合而不是数组,请使用 Collections
类中的排序方法,其工作方式类似于 Arrays.sort
方法。
关于java - 对 ArrayList 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35689740/