问题
Is there a better way to fill an ArrayList like this (I have done it like this in Java 7):
List<ScheduleIntervalContainer> scheduleIntervalContainers = new ArrayList<>();
scheduleIntervalContainers.add(scheduleIntervalContainer);
回答1:
To fill a List, it is possible to generate an infinite Stream using Stream.generate(s) and then limit the number of results with limit(maxSize).
For example, to fill a List of 10 new ScheduleIntervalContainer objects:
List<ScheduleIntervalContainer> scheduleIntervalContainers =
Stream.generate(ScheduleIntervalContainer::new).limit(10).collect(toList());
The generate method takes a Supplier: in this case, the supplier is a method reference creating new instance of ScheduleIntervalContainer each time.
来源:https://stackoverflow.com/questions/33140535/java-8-fill-arraylist