Скажем, я хочу создать n элементов. Pre Java 8, я бы написал:
List<MyClass> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
list.add(new MyClass());
}
Есть ли элегантный способ использования потока для создания n элементов?
Я подумал об этом:
List<MyClass> list = Stream.iterate(0, i -> i).limit(10)
.map(o -> new MyClass()).collect(Collectors.toList());
Есть ли стандартный/лучший способ кодирования этого?
Обратите внимание, что фактическое использование немного сложнее, и использование потока будет более гибким, потому что я могу сразу перекачать элементы через другие функции в одной строке, даже не создавая ссылку на список, например, группируя их:
Stream.iterate(0, i -> i).limit(10).map(o -> new MyClass())
.collect(Collectors.groupingBy(...));