Java 8 - 填充ArrayList

qum*_*uma 6 java lambda java-8 java-stream

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

List<ScheduleIntervalContainer> scheduleIntervalContainers = new ArrayList<>();
scheduleIntervalContainers.add(scheduleIntervalContainer);
Run Code Online (Sandbox Code Playgroud)

Tun*_*aki 12

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

例如,要填充List10个新ScheduleIntervalContainer对象:

List<ScheduleIntervalContainer> scheduleIntervalContainers = 
        Stream.generate(ScheduleIntervalContainer::new).limit(10).collect(toList());
Run Code Online (Sandbox Code Playgroud)

generate方法采用Supplier:在这种情况下,供应商是ScheduleIntervalContainer每次创建新实例的方法参考.