如何以字符串格式对日期的数组列表进行升序和降序排序
我有日期的arrayLists,它是String格式,那么如何对这个arraylists进行排序,
ArrayList<String> aryBeginDate;ArrayList<String> aryDueDate;
for (int i = 0; i < arySubject.size(); i++) {
RowItem row = new RowItem();
row.setSubject(arySubject.get(i).toString());
row.setUser(aryFromUser.get(i).toString());
if (aryBeginDate.equals(" ")) {
row.setStartDate(" ");
} else {
row.setStartDate(aryBeginDate.get(i).toString()); \\Have to sort at this line
}
if (aryDueDate.equals(" ")) {
row.setEndDate(" ");
} else {
row.setEndDate(aryDueDate.get(i).toString()); \\Have to sort at this line
}
aryListBean.add(row);
}
回答:
要使用日期时,请不要使用字符串。使用日期。显示日期时,只能将日期转换为字符串。否则,在代码中的任何地方,日期都应为Date类型。这是允许按时间顺序进行排序的原因,因为日期具有按时间顺序排列的自然顺序。
因此,一旦RowItem
a startDate
和an endDate
都为type
Date
,则可以使用简单的比较器按开始日期对行项目列表进行排序:
Collections.sort(rowItems, new Comparator<RowItem>() { @Override
public int compare(RowItem r1, RowItem 2) {
return r1.getStartDate().compareTo(r2.getStartDate());
}
});
另外,修复您的if / else块的缩进,因为您的方式确实不可读:
if (aryBeginDate.equals(" ")) { row.setStartDate(" ");
}
else {
row.setStartDate(aryBeginDate.get(i).toString());
}
以上是 如何以字符串格式对日期的数组列表进行升序和降序排序 的全部内容, 来源链接: utcz.com/qa/415625.html