Java中如何显示Array数值(含硬编码值)并接收用户输入存入Array
实现代码及说明
核心问题原因
你直接打印数组变量会输出内存地址而非元素内容,需要通过Arrays.toString()或者遍历的方式输出硬编码数组的元素。
完整可运行示例(原始数组方案)
适配你需要的「启动展示硬编码数值+接收用户输入存入」需求,代码如下:
import java.util.Arrays; import java.util.Scanner; public class ArrayOperateDemo { public static void main(String[] args) { // 替换成你自己硬编码的数组内容即可 int[] hardCodedArray = {2, 7, 15, 23, 39}; Scanner inputScanner = new Scanner(System.in); // 启动时展示已有数组数值 System.out.println("=== 数组当前已有元素 ==="); // 最简单的输出方式,直接调用Arrays.toString System.out.println(Arrays.toString(hardCodedArray)); // 接收用户输入存入数组(原始数组定长,示例演示新增3个元素,需要其他数量可自行调整) System.out.println("\n请输入3个要存入的整数,用空格分隔:"); // 复制原数组生成更长的新数组,实现扩容 int[] expandedArray = Arrays.copyOf(hardCodedArray, hardCodedArray.length + 3); for (int i = hardCodedArray.length; i < expandedArray.length; i++) { expandedArray[i] = inputScanner.nextInt(); } // 输出存入后的完整数组 System.out.println("\n=== 新增元素后的完整数组 ==="); System.out.println(Arrays.toString(expandedArray)); inputScanner.close(); } }
动态长度方案(推荐,用ArrayList)
如果不需要限制新增元素的数量,优先用自动扩容的ArrayList实现,无需手动处理数组扩容逻辑:
import java.util.ArrayList; import java.util.Scanner; public class DynamicArrayDemo { public static void main(String[] args) { // 初始化硬编码元素 ArrayList<Integer> numList = new ArrayList<>(); numList.add(2); numList.add(7); numList.add(15); numList.add(23); numList.add(39); Scanner inputScanner = new Scanner(System.in); // 启动时输出已有元素 System.out.println("=== 数组当前已有元素 ==="); System.out.println(numList); // 支持持续输入,输入-1时结束输入 System.out.println("\n请输入要存入的整数,输入-1结束输入:"); while (true) { int inputNum = inputScanner.nextInt(); if (inputNum == -1) { break; } numList.add(inputNum); } System.out.println("\n=== 新增元素后的完整数组 ==="); System.out.println(numList); inputScanner.close(); } }
注意事项
- 不要直接打印数组变量名,输出的是内存地址而非元素内容
- 原始数组初始化后长度固定,新增元素需要手动扩容,仅适合长度固定的场景
- 引入相关工具类前需要补全import语句,否则编译会报错
内容的提问来源于stack exchange,提问作者BananaSweden
相关产品推荐
相关产品推荐

