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

Java排序程序运行报ArrayIndexOutOfBoundsException越界错误怎么解决

错误根因
  • Java类的int类型成员变量默认初始值为0,你在定义int[] array = new int[n];时,n还未被赋值为用户输入的大小,此时创建的array数组长度固定为0。Java数组是定长结构,初始化后长度不会随后续n值的修改自动变化。
  • 你在getData方法中读取到用户输入的数组长度n后,没有重新初始化array数组,直接向长度为0的数组中写入元素,触发了数组下标越界异常。
修复方法

在getData方法中拿到用户输入的n值后,先重新初始化array数组,再写入元素即可,修改后的Sorting.java代码如下:

import java.util.Scanner;

public class Sorting {
    private int n;
    int[] array; // 先声明数组,等拿到n的实际值再初始化

    public void getData(){
        Scanner input = new Scanner(System.in);
        System.out.println("Enter the size of Array to be Sorted");
        n = input.nextInt(); 
        array = new int[n]; // 拿到数组长度后再创建对应大小的数组

        System.out.println("Enter elements of an array ");
        for (int i = 0; i < n; i++) {
            array[i] = input.nextInt();
        }
        // 注:当前代码还未实现排序逻辑,showData方法输出的是原输入数组而非排序后的结果
    }

    void showData(){
        for (int i = 0; i < n; i++) {
            System.out.println("Array => "+ array[i]);
        }
        System.out.println(n);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 05:06:04