当前位置: 首页 > 知识库问答 >
问题:

尝试向对象数组中添加元素时,索引5超出长度5的界限[duplicate]

吕峰
2023-03-14
public static Groceries [] addGrocery(Groceries[] arr, String name, int price) {
        int arrayLength = Array.getLength(arr);
        System.out.println(arrayLength);
        Groceries[] newGrocery = new Groceries[arrayLength + 1];
        int arrayLength2 = Array.getLength(newGrocery);
        System.out.println(arrayLength2);
        int i;
        for(i = 0; i < arrayLength; i++) {
            newGrocery[i] = arr[i];
            System.out.println("New item added" + i);
        }
        newGrocery[i+1] = new Groceries(name, price);
        return newGrocery;

    }

我有一个方法,我输入一个包含4个对象的数组,它创建一个新的对象数组,复制之前的4个对象,然后再向数组中添加一个。但我一直有例外。

共有1个答案

屠盛
2023-03-14

发生异常是因为您试图将一个元素添加到不存在的数组索引(i 1)中,此处:

newgrovery[i 1]=新食品杂货(名称、价格)

这是因为i已经被数组末尾的for循环增加到数组中的最后一个索引值,通过执行i 1您试图访问不存在的index=ArrayLength 2

也许你想要的是一个列表,它能够在添加新元素时扩展其大小,不像数组有固定的大小。

 类似资料:
  • 我正在努力创造这个游戏https://en.wikipedia.org/wiki/Conway然而,每当我尝试使用printBoard方法时,我都会遇到以下错误 线程“main”java中出现异常。lang.ArrayIndexOutOfBoundsException:索引5超出长度5的界限。 我怎样才能解决这个问题?谢谢

  • 我使用的是一个3D数组,下面的代码是我得到的数组索引超出界限的错误,下面是相同的代码:- 获取以下错误:- 线程“main”Java.lang.ArrayIndexOutOfBoundsException中出现异常:索引0超出了Array2d.TugasArray3.Main(TugasArray3.:27)得分Mid Test1 Ke-1

  • 在此输入图像描述 这是我的代码,我试图解决它5个小时,但我没有得到什么问题,任何人都可以帮助。我也检查了资源,但代码与源代码相同,但它没有运行。

  • 目前,我得到了以下代码的错误。错误是索引4超出了长度4的范围。基本上,我想做的是返回第一个索引,其中数据没有按升序排序。如果对数据进行了排序,该函数将返回数组的长度。例如{10,20,90,5,70}将返回3(90) 我使用的测试用例如下: 任何帮助或线索都将不胜感激。

  • 更新:原来我不得不再次导出一个SVG,并把它放在我文件的数据文件夹中。 我再次面临一个编码问题。抱歉,如果格式不正确,我还需要改进我的编码问题的措辞方式。 ArrayIndexOutOfBoundsException:索引30超出长度30的界限意味着什么?我已经试着自己去查了,但似乎找不到它的意思。 起初,当我添加svg时,代码正常工作,然后我再次添加了同样的文件,也正常工作(Eye2、pupil