【发布时间】:2021-10-06 22:48:00
【问题描述】:
我有一个未排序的季节和年份字符串数组列表,如下所示:
["Summer 2020", "Autumn 2018", "Spring 2019", "Autumn 2019", "Winter 2018", "Summer 2018", "Winter 2020", "Spring 2018"]
这个列表的正确排序如下:
["Winter 2018", "Spring 2018", "Summer 2018", "Autumn 2018", "Spring 2019", "Autumn 2019", "Winter 2020", "Summer 2020"]
我怎样才能实现这个订单?一年中的季节顺序为 2021 年冬季、2021 年春季、2021 年夏季、2021 年秋季,并且每年的所有季节都不一定存在于列表中。
【问题讨论】:
-
问:如何像这样对包含季节和年份的 ArrayList 进行排序? A:看起来你的例子甚至不是合法的Java。我猜你的 ArrayList 实际上由“字符串”元素组成。在任何情况下:1) 只需编写自定义Comparator。 2) 您的比较器将解析您正在比较的“季节”和“年份”的两个元素,然后根据需要返回 -1、0 或 1。十分简单。查看我引用的示例链接。
-
我会添加 ThreeTen-Extra 以使用其
YearQuarter类而不是字符串。
标签: java list sorting arraylist