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

Java开发中如何向int类型数组插入新的数值元素

你代码中仅声明了int[] numbers的引用变量,没有完成数组的初始化分配内存,因此无法直接对数组元素进行赋值操作。Java的原生数组是定长数据结构,必须先指定长度初始化后才能操作对应下标的元素。

可用解决方案

方案1:初始化固定长度数组

如果提前明确数组需要存储的元素数量,直接在声明时指定数组长度即可正常赋值:

// 示例:初始化可存储10个int值的数组
int[] numbers = new int[10];
Scanner scan = new Scanner(System.in);
int number = scan.nextInt();
// 此时可正常给指定下标元素赋值
numbers[0] = number;

注意:原生数组初始化后长度固定,若后续存储元素数量超过初始长度会触发下标越界异常

方案2:使用动态集合(推荐长度不确定场景)

如果插入元素的数量不固定,更建议用ArrayList动态容器,无需提前指定长度,支持自动扩容:

import java.util.ArrayList;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        // 声明存储Integer类型的动态列表
        ArrayList<Integer> numberList = new ArrayList<>();
        Scanner scan = new Scanner(System.in);
        int number = scan.nextInt();
        // 插入元素到列表末尾
        numberList.add(number);
        // 也可插入到指定位置,例如下标0的位置
        numberList.add(0, number);

        // 后续若需要转回原生int数组可做转换
        int[] numbers = numberList.stream().mapToInt(Integer::intValue).toArray();
    }
}

方案3:手动实现数组动态扩容

如果必须使用原生int数组,可手动实现扩容逻辑来插入新元素:

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        // 初始可设置为空数组或指定初始长度
        int[] numbers = new int[0];
        Scanner scan = new Scanner(System.in);
        int number = scan.nextInt();

        // 创建长度比原数组大1的新数组
        int[] newNumbers = new int[numbers.length + 1];
        // 复制原数组所有元素到新数组
        System.arraycopy(numbers, 0, newNumbers, 0, numbers.length);
        // 插入新元素到末尾,也可调整逻辑插入到指定下标位置
        newNumbers[newNumbers.length - 1] = number;
        // 把原数组引用指向扩容后的新数组
        numbers = newNumbers;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:24:04