如何以字符串格式对日期的数组列表进行升序和降序排序

我有日期的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类型。这是允许按时间顺序进行排序的原因,因为日期具有按时间顺序排列的自然顺序。

因此,一旦RowItema 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

回到顶部