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

如何修改randomSquare方法使其返回10个平方数的IntStream?

修改方法以返回10个平方数的IntStream

嘿,我来帮你搞定这个需求!首先得说下你原方法里的一个小疏忽:循环里输出的是索引i,而不是生成的随机数array[i],不过既然我们要改成返回IntStream,那直接用流操作会更简洁高效,完全不用转数组和循环输出啦。

要实现目标,只需要做这几个关键改动:

  • 把方法的返回类型从void改成IntStream(这是核心,因为我们要返回流而不是直接输出)
  • 去掉数组转换和循环打印的代码,直接对随机数流做平方映射
  • 放心,new Random().ints(10)已经帮我们限定了流里正好有10个元素,不用额外处理数量

修改后的完整代码如下:

import java.util.Random;
import java.util.stream.IntStream;

public class YourClass { // 记得替换成你的实际类名
    public static IntStream randomSquare() {
        return new Random().ints(10) // 生成包含10个随机整数的流
                           .map(n -> n * n); // 对每个元素计算平方
    }
}

额外小提示:

如果你需要的是非负的平方数(毕竟随机生成的int可能是负数,平方后虽然也是正数,但如果想确保原数是非负的再平方),可以加一步取绝对值:

return new Random().ints(10)
                   .map(Math::abs) // 先把随机数转为非负
                   .map(n -> n * n);

用流操作的好处是延迟执行,如果后续你不需要处理所有10个元素,能节省不少资源,比先转成数组再处理要高效得多~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:34:07