日期ArrayList的排序
Posted
技术标签:
【中文标题】日期ArrayList的排序【英文标题】:Sorting of Date ArrayList 【发布时间】:2012-09-15 16:45:27 【问题描述】:我有一个ArrayList
,其中包含格式为(星期六,2012 年 2 月 4 日)的日期。我怎样才能对这个ArrayList
进行排序?
【问题讨论】:
你做了什么?这样做?你试过了吗? 你约会时使用什么课程? 您需要以哪种类型开始日期或日期或年份? 日期格式?你的意思是日期存储为字符串?因为java.util.Date
对象本身没有格式。
我尝试使用 Collections.sort()....我在数组列表中有四到五个日期项目,格式为“2012 年 2 月 4 日星期六”...我必须对它们进行排序以显示按从新到旧的顺序排列。
【参考方案1】:
这是最简单的排序方式之一,
Collections.sort(<Your Array List>);
【讨论】:
【参考方案2】:如果您在排序时有任何特殊要求,可以提供自己的Comparator
。例如:
//your List
ArrayList<Date> d = new ArrayList<Date>();
//Sorting
Collections.sort(d, new Comparator<Date>()
@Override
public int compare(Date lhs, Date rhs)
if (lhs.getTime() < rhs.getTime())
return -1;
else if (lhs.getTime() == rhs.getTime())
return 0;
else
return 1;
);
关键是您要将Date
对象转换为毫秒(使用getTime()
)进行比较。
【讨论】:
否则只使用 Collections.sort(8 年后..
List<Date> dates = datelist;
List<Date> sorted = dates.stream()
.sorted(Comparator.comparingLong(Date::getTime))
.collect(Collectors.toList());
【讨论】:
以上是关于日期ArrayList的排序的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 array[0] 元素对数组的 ArrayList 进行排序,该元素是以 dd/mm/yyyy 格式给出的日期?