java中将list<String> list ={"202507","202506","202509","202608","202409"} 排序获取最大时间和最小时间后得到'yyyy'
时间: 2025-07-21 14:30:11 浏览: 3
### 对 `List<String>` 中的日期字符串进行排序并提取年份
在 Java 中,若需要对 `List<String>` 中的日期字符串(如 `"202507"`)进行排序并提取年份,可以使用以下方法。日期字符串的格式为 `YYYYMM`,其中前四位表示年份,后两位表示月份。
#### 示例代码:排序并提取年份
```java
import java.util.*;
public class DateSorter {
public static void main(String[] args) {
List<String> dateList = Arrays.asList("202507", "202506", "202509", "202608", "202409");
// 排序逻辑:将字符串转换为整数进行比较
Collections.sort(dateList, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.compare(Integer.parseInt(o1), Integer.parseInt(o2));
}
});
// 获取最小和最大日期
String minDate = dateList.get(0);
String maxDate = dateList.get(dateList.size() - 1);
// 提取年份
String minYear = minDate.substring(0, 4);
String maxYear = maxDate.substring(0, 4);
System.out.println("最小日期: " + minDate + ", 年份: " + minYear);
System.out.println("最大日期: " + maxDate + ", 年份: " + maxYear);
}
}
```
#### 输出结果:
```
最小日期: 202409, 年份: 2024
最大日期: 202608, 年份: 2026
```
#### 排序与提取逻辑说明
- 使用 `Collections.sort()` 方法对 `List<String>` 进行排序,通过 `Comparator` 自定义排序规则。
- 将字符串转换为整数进行比较,确保排序逻辑基于数值而非字符串字典序。
- 排序完成后,列表的第一个元素即为最小日期,最后一个元素为最大日期。
- 使用 `substring()` 方法提取年份部分(前四位)[^2]。
#### 时间复杂度分析
- `Collections.sort()` 使用的是 Timsort 算法,其时间复杂度为 O(n log n),其中 n 是列表的长度。
- 转换字符串为整数和提取年份的操作是线性的,时间复杂度为 O(n),因此整个操作的时间复杂度为 O(n log n)[^2]。
#### 应用场景
- 该方法适用于处理年月格式的日期字符串排序与年份提取。
- 可用于日志分析、数据清洗、时间序列处理等场景。
---
###
阅读全文
相关推荐



















