xco*_*der 1 java java-8 java-stream
我正在玩Java 8并尝试使用stream().我想实现的是说,我有一个名单[1,2,3,4],我要加倍的偶数2和4,然后用更新的值返回列表.所以,我会得到[1,4,3,8]结果.我试过以下但它只返回了[4,8].
List<Integer> myList =
Arrays.asList(1,2,3,4);
myList = myList
.stream()
.filter(n -> n%2==0)
.map(n -> n*2)
.collect(Collectors.toList());
System.out.println(myList);
Run Code Online (Sandbox Code Playgroud)
有办法做我想要的吗?
该filter方法删除那些不符合条件的元素.它不会使其余的操作不适用.移动map方法内的条件.
myList = myList
.stream()
.map(n -> (n % 2 == 0) ? n*2 : n)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)