You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java 8实现偶数乘5、奇数保留的列表转换需求?

解决Java 8 Stream处理奇偶元素的问题

你的代码问题出在使用了filter操作——这个操作会直接剔除所有不满足条件(这里是奇数)的元素,所以最终结果里只剩下处理后的偶数,丢失了原有的奇数。

要实现“偶数乘5,奇数保持不变”的需求,不需要过滤元素,而是要在map操作里对每个元素做条件判断:

Stream<Integer> intStream = Stream.of(1, 2, 3, 4, 5);     
List<Integer> resStream = intStream
      .map(i -> i % 2 == 0 ? i * 5 : i) // 偶数乘5,奇数返回原数
      .collect(Collectors.toList());
            
resStream.forEach(System.out::println);

运行这段代码后,输出结果就是:

1
10
3
20
5

完全符合你期望的输出。

本质上就是把原本的filter+map合并成一个带条件判断的map操作,这样所有元素都会被保留并按规则处理。

内容的提问来源于stack exchange,提问作者Lova Chittumuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 13:52:03