java中stream流对String类型日期集合做升序排序
时间: 2024-05-14 07:15:09 浏览: 126
假设有一个String类型的日期集合,可以使用Java 8中的Stream流对其进行升序排序,具体代码如下:
```java
List<String> dateList = Arrays.asList("2022-10-01", "2022-10-02", "2022-09-30", "2022-10-03");
List<String> sortedDateList = dateList.stream()
.sorted(Comparator.comparing(s -> LocalDate.parse(s)))
.collect(Collectors.toList());
System.out.println(sortedDateList);
```
代码解释:
1. 首先,将字符串日期集合转换为Stream流。
2. 使用sorted()方法对流中的元素进行排序,Comparator.comparing()方法用于比较元素的大小。
3. 在Comparator.comparing()方法中,使用LocalDate.parse()方法将字符串日期转换为LocalDate类型,然后比较大小。
4. 最后,使用collect()方法将排序后的结果转换为List集合。
输出结果:
```
[2022-09-30, 2022-10-01, 2022-10-02, 2022-10-03]
```
可以看到,String类型的日期集合已经按照升序排序。
相关问题
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
```
阅读全文