gpt4 book ai didi

java - 使用 Java 流收集在 `for` 循环中生成的对象

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:37:39 25 4
gpt4 key购买 nike

我们如何使用 Java Streams 方法来收集在 for 循环中生成的对象?

例如这里我们生成一个LocalDate YearMonth 表示的一个月中每一天的对象通过反复调用 YearMonth::atDay .

YearMonth ym = YearMonth.of( 2017 , Month.AUGUST ) ;
List<LocalDate> dates = new ArrayList<>( ym.lengthOfMonth() );
for ( int i = 1 ; i <= ym.lengthOfMonth () ; i ++ ) {
LocalDate localDate = ym.atDay ( i );
dates.add( localDate );
}

这可以用流重写吗?

最佳答案

它可以从 IntStream 开始重写:

YearMonth ym = YearMonth.of(2017, Month.AUGUST);
List<LocalDate> dates =
IntStream.rangeClosed(1, ym.lengthOfMonth())
.mapToObj(ym::atDay)
.collect(Collectors.toList());

IntStream 中的每个整数值都映射到所需的日期,然后将这些日期收集到一个列表中。

关于java - 使用 Java 流收集在 `for` 循环中生成的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42285630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com