我有一个包含字符串的ArrayList,如2008-02-10T12:29:33.000
[2008-02-11T12:29:33.000, 2008-02-10T12:29:33.000]...
我想按自然顺序对此ArrayList进行排序。为此,我必须将此字符串转换为Date I quess。 排序后排序ArrayList的顺序为:
[2008-02-10T12:29:33.000, 2008-02-11T12:29:33.000]
我使用的编程语言是Java。
答案 0 :(得分:4)
虽然您可以对字符串进行排序,但我会将这些日期存储为LocalDateTime
而不是字符串,并保持这种状态。这将使操纵它们变得更加容易。
转型可能如下:
List<String> list = Arrays.asList("2008-02-11T12:29:33.000", "2008-02-10T12:29:33.000");
List<LocalDateTime> dates = list.stream().map(LocalDateTime::parse).collect(toList());
(这是有效的,因为你的字符串是正确的ISO格式)。
然后排序就像:
Collections.sort(dates);
答案 1 :(得分:2)
我不相信你需要做任何转换,因为这些字符串有一个自然的顺序(至少我看不到反例)。
所以Collections.sort()
应该做到这一点。
答案 2 :(得分:0)
ArrayList<String> dates = new ArrayList<String>();
dates.add("2008-02-11T12:29:33.000");
dates.add("2008-02-10T12:29:33.000");
Collections.sort(dates);
for (String date : dates)
{
System.out.println(date);
}