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

我制作的阵列有什么问题?

彭炳
2023-03-14

我想运行我的程序,但它给我这个错误:异常线程主java.lang.ArrayIndexOutOfBoundsException: 0在Main.main(Main.java: 9)

public class Main {

    //main metode, som kører programmet.
    public static void main(String[] args){

        //Vi deklarerer et array i en lokal variabel.
        Person[] personer = new Person[0];
        personer[0]= new Person("Martin", 22, "Male");
        personer[1]= new Person("Mads", 25, "Male");
        personer[2]= new Person("Sofie", 20, "Female");
        personer[3]= new Person("Kasper", 26, "Male");
        personer[4]= new Person("Martin", 17, "Male");

        //Her laver vi en løkke for at udskrive alle vores objekter i vores array.
        int i = 0; //Initialisationen.
        while (i < 5 ) //Betingelsen.
        {
            System.out.println("Navn: "+personer[i].getNavn()+" Alder: "+personer[i].getalder()+" Kon: "+personer[i].getkøn());
            i = i + 1;
        }
    }
}

我一直在寻找解决方案,我唯一找到的是:我的数组怎么了?,这与我遇到的错误/问题不同。

共有2个答案

张溪叠
2023-03-14

您的人员数组大小是0而不是5。请更改此项

Person[] personer = new Person[0];

Person[] personer = new Person[5];
常英毅
2023-03-14

您声明数组的长度为< code>0:

Person[] personer = new Person[0];

然后尝试将元素放入其中。看起来您希望数组中总共有5个元素,因此将其长度定为5:

Person[] personer = new Person[5];

想象一个像鸡蛋盒一样的数组。纸盒里只有这么多插槽,你创建纸盒后就不能改变了。你可以把一个鸡蛋放在插槽里,或者从插槽里取出一个鸡蛋,但是你不能改变插槽的数量。所以一旦你声明了一个长度为0的数组,你就不能改变那个长度。

但是,如果您不知道数组需要的“槽”数量——您需要大小可变,您可以使用称为ArrayList的更复杂的数据结构。使用ArrayList和Array的语法有点不同,但方法论大致相同。以下是如何更改代码以使用ArrayList,这为以后向集合中添加更多人员留下了可能性。

ArrayList<Person> personer = new ArrayList<Person>();
personer.add(new Person("Martin", 22, "Male"));
personer.add(new Person("Mads", 25, "Male"));
personer.add(new Person("Sofie", 20, "Female"));
personer.add(new Person("Kasper", 26, "Male"));
personer.add(new Person("Martin", 17, "Male"));

然后,要获取索引 i 处的元素,请使用

personer.get(i);
 类似资料:
  • 问题内容: 我简直不敢相信我网站上正在发生的事情。当我添加此行时: 一切正常。如果我不这样做,CSS就会“混乱”,一切都会变得不同,布局也会变得“丑陋”。 这条线如何解决所有问题? 问题答案: 您正在将HTML与XHTML混合使用。 通常,声明用于区分HTMLish语言的版本(在这种情况下为HTML或XHTML)。 不同的标记语言将表现不同。我最喜欢的例子是。在浏览器中查看以下内容: XHTML

  • 问题内容: 运行此代码时,我不断收到此错误: 错误:大小写类型的字符不同,并且整数不能匹配 您可能会认为这不会造成问题,因为我正在查询中创建新列。我还想指出的是,如果有帮助,我正在使用旧版本的PostgreSQL。 问题答案:

  • 问题内容: 我正在使用以下SQL命令来重命名列。 但这会导致错误: 消息15248,级别11,状态1,过程sp_rename,第238 行参数@objname含糊或声明的@objtype(COLUMN)错误。 请建议如何使用来重命名列。 [我正在使用的此命令可以在Microsoft Technet上找到] 问题答案: 试试这个: sp_rename(Transact-SQL)(msdn): [@o

  • 问题内容: 这是我的方法: 我把它放回去。该方法有什么问题? 问题答案: 您的条件应为i * i <= num 您未考虑数字9,因此9 <9将导致错误。但是您需要检查9。

  • 我有一个SQL存储过程,我需要转换为Oracle。我有一些语法问题。 我当前遇到的错误是: 错误(75,1):PLS-00103:在预期以下情况之一时遇到符号“DROP”:(开始情况声明结束异常退出,如果循环mod null pragma raise return选择更新 我想我还有很多。有人能帮我找出我做错了什么吗? 以下是我所拥有的: 以下是原始SQL代码:

  • 我试图实现连接,但我面临错误。我有产品表和商店表。产品表引用通过外键存储表,如下所示: 产品JAVA 现在,我展示tore.java 现在,我展示仓库 现在,这个错误是因为我在最后两个查询中实现了join。我想做的是购买所有商店位于特定城市或州的产品,如上图所示。 我遇到的错误是: 启动应用程序上下文时出错。要显示自动配置报告,请在启用调试的情况下重新运行应用程序。2016-10-16 09:53