使用Java 8 Stream打印修改后的列表值

And*_*llo 1 java lambda java-stream

拥有如下清单

List<Integer> values = new ArrayList<Integer>();

values.add(1);
values.add(0);
values.add(1);
values.add(1);
values.add(0);
Run Code Online (Sandbox Code Playgroud)

我想打印> 0添加元素的元素,例如10,使用Java 8 Stream。例如:

values.stream()
    .filter(val -> val > 0)
    // HERE add 10
    .forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

有可能这样做吗?如果是,怎么办?

Mat*_*hew 5

使用地图操作

values.stream()
      .filter(val -> val>0)
      .map(x -> x+10)
      .forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

如果需要保留值,请执行

List<Integer> newValues = values.stream()
                                .filter(val -> val>0)
                                .map(x -> x+10)
                                .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)