JDK16环境下如何生成1到x的整数数组并计算元素立方值存储
Java实现1到x整数数组生成及立方计算方案
完整可运行代码
import java.util.Scanner; import java.util.stream.IntStream; public class CubeNums { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入x的值:"); int x = scan.nextInt(); scan.close(); // 等效于Python range(1, x+1),直接生成int[]数组 int[] numRange = IntStream.rangeClosed(1, x).toArray(); int[] cubeResult = new int[x]; // 遍历计算立方 for (int i = 0; i < numRange.length; i++) { // 直接用三次乘法避免Math.pow的类型转换和精度问题 cubeResult[i] = numRange[i] * numRange[i] * numRange[i]; } // 可删除以下输出代码,此处用于验证结果 for (int res : cubeResult) { System.out.print(res + " "); } } }
核心实现说明
- 你需要的Python
range(1, x+1)等效于Java的IntStream.rangeClosed(1, x),rangeClosed为左闭右闭规则,会包含首尾两个边界值,直接调用toArray()方法即可直接得到int[]类型数组,不需要装箱转集合再做强制类型转换,避免类型报错 - 原代码存在两处明显语法问题:Java中没有小写
list类型,集合类型是java.util.List且需要指定泛型;for循环语法错误,原生数组遍历不需要在括号内初始化数组 - 如果不需要单独存储1到x的整数数组,可以直接简化写法,省略中间数组的内存开销:
int[] cubeResult = new int[x]; for (int i = 0; i < x; i++) { int current = i + 1; cubeResult[i] = current * current * current; }
内容的提问来源于stack exchange,提问作者Tekkerito
相关产品推荐
相关产品推荐

