在代码中,我想通过i
方法修改变量map()
:
Integer[] seq = {1, 3, 4, 1, 8, 11};
List<Integer> seqInt = Arrays.asList(seq);
List<Integer> seqFiltered = seqInt.stream().filter(i -> i%2!=0)
.map(i -> i++)
.collect(Collectors.toList());
System.out.println(seqFiltered);
但是,它输出[1, 3, 1, 11]
而不是[2, 4, 2, 12]
答案 0 :(得分:4)
只需使用前增量运算符而不是后增量运算符即可。
List<Integer> seqFiltered = seqInt.stream()
.filter(i -> i%2!=0)
.map(i -> ++i)
.collect(Collectors.toList());
此外,您可以利用Arrays.stream
将Integer数组用作流
List<Integer> seqFiltered = Arrays.stream(seq)
.filter(i -> i % 2 != 0)
.map(i -> ++i)
.collect(Collectors.toList());