java中stream流对String类型日期集合做升序排序
时间: 2024-05-05 18:17:17 浏览: 12
假设有一个String类型的日期集合list,可以使用Stream的sorted方法进行升序排序,代码如下:
```java
List<String> list = Arrays.asList("2021-01-01", "2020-12-31", "2021-02-01");
List<String> sortedList = list.stream()
.sorted(Comparator.comparing(s -> LocalDate.parse(s)))
.collect(Collectors.toList());
System.out.println(sortedList); // [2020-12-31, 2021-01-01, 2021-02-01]
```
在sorted方法中,使用Comparator.comparing方法对每个日期字符串进行解析并转换为LocalDate对象,然后比较大小进行排序。最终使用collect方法将排序后的结果收集为一个新的List。
相关问题
java8stream流将List<Map<String, Object>>集合根据日期和id进行升序排序
好的,这个问题可以回答。
可以使用Java 8的流(Stream)对List<Map<String, Object>>集合按照日期和id进行升序排序。
这里给出代码示例:
```
List<Map<String, Object>> list = new ArrayList<>();
// 添加元素到list中
// 对list按照日期和id进行升序排序
list = list.stream().sorted(Comparator.comparing(m ->
LocalDate.parse((CharSequence) m.get("date")),
Comparator.naturalOrder())
.thenComparing(m -> (Integer) m.get("id"), Comparator.naturalOrder()))
.collect(Collectors.toList());
```
其中,按照日期排序是先将日期字符串转化成LocalDate格式,然后使用自然排序(Comparator.naturalOrder())进行比较;按照id排序则直接使用自然排序进行比较。
希望能够帮到你!
日期集合用Stream升序
可以使用 `sorted()` 方法来按升序对日期集合进行排序,然后使用 `forEach()` 方法来输出排序后的日期集合。以下是示例代码:
```java
import java.time.LocalDate;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<LocalDate> dates = Arrays.asList(
LocalDate.of(2021, 10, 1),
LocalDate.of(2021, 10, 5),
LocalDate.of(2021, 10, 3),
LocalDate.of(2021, 10, 2)
);
dates.stream()
.sorted()
.forEach(System.out::println);
}
}
```
输出结果为:
```
2021-10-01
2021-10-02
2021-10-03
2021-10-05
```