如何按条件乘以数组元素

Ric*_*cky 1 java arrays java-stream

我有一个数组,想将大于 9 的元素乘以 2 且小于或等于 9 的元素乘以 3。

  List<Integer> list = Arrays.asList(3, 6, 9, 12, 15);
  list.stream().map(number -> number * 3).forEach(System.out::println); 
Run Code Online (Sandbox Code Playgroud)

这个乘以 3 ,其中

list.stream().filter(number -> number>3).map(number -> number * 3).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

这一乘法但也过滤器。

我想要 3 ,6 ,9 乘以 3 和 12, 15 乘以 2。

任何帮助表示赞赏。

Era*_*ran 6

您可以结合filtermap步骤:

list.stream()
    .map(n -> n > 9 ? n * 2 : n * 3)
    .forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)