使用Java 8 Stream中的参数创建对象

时间:2017-05-14 13:14:22

标签: java collections parameters java-8 java-stream

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

for(Integer id:someCollectionContainingTheIntegers){
     someClass.getList().add(new Whatever(param1, id));
}

3 个答案:

答案 0 :(得分:4)

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

someCollectionContainingTheIntegers.forEach(id -> someClass.getList().add(new Whatever(param1, id));

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

someCollectionContainingTheIntegers.stream()
    .map(id -> new Whatever(param1, id))
    .collect(Collectors.toCollection(() -> someClass.getList()));

答案 1 :(得分:2)

还有一个解决方案......

    List<Whatever> collect = someCollectionContainingTheIntegers.stream()
            .map(id -> new Whatever(param1, id))
            .collect(toList());
    someClass.getList().addAll(collect);

答案 2 :(得分:1)

在列表中做一个foreach

List<Integer> ml = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
List<Integer> ml2 = Arrays.asList(21, 22, 23, 24);
ml2.forEach(x -> ml.add(x));
System.out.println(ml);