在 Java 8 Stream 中创建带参数的对象

Max*_*ver 3 java collections parameters java-8 java-stream

使用 Stream 类时是否可以创建带参数的对象?我想用 Java 8 Stream 重现以下内容。

for(Integer id:someCollectionContainingTheIntegers){
     someClass.getList().add(new Whatever(param1, id));
}
Run Code Online (Sandbox Code Playgroud)

Sto*_*ica 5

当然。但是如果你有一个集合,你可以使用forEach和一个 lambda:

someCollectionContainingTheIntegers.forEach(id -> someClass.getList().add(new Whatever(param1, id));
Run Code Online (Sandbox Code Playgroud)

另一种可能的变化是收集到目的地列表中:

someCollectionContainingTheIntegers.stream()
    .map(id -> new Whatever(param1, id))
    .collect(Collectors.toCollection(() -> someClass.getList()));
Run Code Online (Sandbox Code Playgroud)