修改列表的一部分,然后返回更新的列表

xco*_*der 1 java java-8 java-stream

我正在玩Java 8并尝试使用stream().我想实现的是说,我有一个名单[1,2,3,4],我要加倍的偶数24,然后用更新的值返回列表.所以,我会得到[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)

有办法做我想要的吗?

rge*_*man 7

filter方法删除那些不符合条件的元素.它不会使其余的操作不适用.移动map方法内的条件.

myList = myList
   .stream()
   .map(n -> (n % 2 == 0) ? n*2 : n)
   .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)