Java 8 - 填充 ArrayList

标签 java lambda java-8 java-stream

有没有更好的方法来像这样填充 ArrayList(我在 Java 7 中这样做过):

List<ScheduleIntervalContainer> scheduleIntervalContainers = new ArrayList<>();
scheduleIntervalContainers.add(scheduleIntervalContainer);

最佳答案

要填充List,可以使用Stream.generate(s) 生成无限Stream然后使用 limit(maxSize) 限制结果数量.

例如,要填充 10 个新的 ScheduleIntervalContainer 对象的 List:

List<ScheduleIntervalContainer> scheduleIntervalContainers = 
        Stream.generate(ScheduleIntervalContainer::new).limit(10).collect(toList());

generate 方法接受一个 Supplier:在这种情况下,供应商是一个方法引用,每次都会创建 ScheduleIntervalContainer 的新实例。

关于Java 8 - 填充 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33140535/

相关文章:

Java 8 功能接口(interface)对象的 Java Hashcode 和 Equals

java - Maven 资源过滤不适用于其中包含 @ 的行

java - 查找 Galaxy Tab 10.1 的 IP 地址以供应用程序

java - 如何在 Java 泛型中获取类型变量的类

c# - 使用 JS 函数调用的 MVC3 中的分页问题

java - 流式传输和过滤列表中包含的子列表中的数据

c++ - lambda 是否像 C++ 中的函数一样内联?

java - 使用 lambda 获取对象列表的 hashmap 值

java - 如何在 JSP 中使用 SLF4J 记录器

Java 8 Streams 和 lambdas 保持严格的 FP