i++在java流映射方法中的应用

i++在java流映射方法中的应用,java,java-stream,Java,Java Stream,在代码中,我想通过map方法修改变量I: 但是,它输出的是[1,3,1,11],而不是[2,4,2,12],可以从mapi->i+1中获得[2,4,2,12],只需使用增量前操作符而不是增量后操作符即可 List<Integer> seqFiltered = seqInt.stream() .filter(i -> i%2!=0) .map(i

在代码中,我想通过map方法修改变量I:


但是,它输出的是[1,3,1,11],而不是[2,4,2,12],可以从mapi->i+1中获得[2,4,2,12],只需使用增量前操作符而不是增量后操作符即可

List<Integer> seqFiltered = seqInt.stream()
                                  .filter(i -> i%2!=0)
                                  .map(i -> ++i)
                                  .collect(Collectors.toList());

除了nullpointer对更多细节的回答之外:在我看来,使用mapi->i+1会更直观,尤其是当我被丢弃时,因此也不会使用增加i的预增量运算符的副作用
List<Integer> seqFiltered = seqInt.stream()
                                  .filter(i -> i%2!=0)
                                  .map(i -> ++i)
                                  .collect(Collectors.toList());
List<Integer> seqFiltered = Arrays.stream(seq)
                                  .filter(i -> i % 2 != 0)
                                  .map(i -> ++i)
                                  .collect(Collectors.toList());