使用Stream类时是否可以创建带参数的对象?我想用Java 8 Stream重现以下内容。
for(Integer id:someCollectionContainingTheIntegers){
someClass.getList().add(new Whatever(param1, id));
}
答案 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);