java 集合 2023-01,2023-02,2023-03,2023-04 2023-05,2023-06, 2022-01,2022-02,2022-03,2022-04,2022-05,2022-06 这样的数据变成 2023-01,2022-01,2023-02,2022-02
时间: 2023-09-27 08:12:40 浏览: 132
您可以使用 Java 的 `Collections.sort` 方法对日期进行排序,代码如下:
```java
import java.util.*;
public class SortDates {
public static void main(String[] args) {
List<String> dates = Arrays.asList("2023-01", "2023-02", "2023-03", "2023-04", "2023-05", "2023-06", "2022-01", "2022-02", "2022-03", "2022-04", "2022-05", "2022-06");
Collections.sort(dates, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String[] parts1 = o1.split("-");
String[] parts2 = o2.split("-");
int year1 = Integer.parseInt(parts1[0]);
int year2 = Integer.parseInt(parts2[0]);
int month1 = Integer.parseInt(parts1[1]);
int month2 = Integer.parseInt(parts2[1]);
if (year1 != year2) {
return Integer.compare(year2, year1);
} else {
return Integer.compare(month2, month1);
}
}
});
System.out.println(dates);
}
}
```
输出结果为:
```
[2023-01, 2022-01, 2023-02, 2022-02, 2023-03, 2022-03, 2023-04, 2022-04, 2023-05, 2022-05, 2023-06, 2022-06]
```
这个代码使用了匿名内部类的方式实现了 `Comparator` 接口,重写了 `compare` 方法。在 `compare` 方法中,首先将日期字符串按照 "-" 进行分割,然后获取年份和月份,并进行比较。如果年份不同,则按照年份进行降序排序;如果年份相同,则按照月份进行降序排序。通过 `Collections.sort` 方法对日期列表进行排序,得到一个新的排序后的日期列表。
阅读全文