Java 数组越界?

Java 数组越界?,java,Java,请帮忙,我还是一个java新手,我不知道为什么一直收到以下错误消息: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException 以下是我正在使用的方法: public static ArrayList <Animal> createAnimalArrayList() { String[] animalName = {"Skye", "Toby", "Peppa", "Charley

请帮忙,我还是一个java新手,我不知道为什么一直收到以下错误消息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
以下是我正在使用的方法:

    public static ArrayList <Animal> createAnimalArrayList() {
        String[] animalName = {"Skye", "Toby", "Peppa", "Charley", "Nemo", "Maisie"};
        String[] ownerName = {"Joe Bloggs", "Mary Rice", "Ann Carroll", "Ciara Roddy", "Lllian Parks", "Ruth Jones"};
        int[] animalAge = {10, 5, 1, 6, 2, 8, 3};
        AnimalType[] animalType = {AnimalType.CAT, AnimalType.COW, AnimalType.DOG, AnimalType.GERBIL, AnimalType.HORSE, AnimalType.SHEEP};

        ArrayList<Animal> animalList = new ArrayList<Animal>();
        Random rand = new Random();
        int randomNum = 0;
        String aName = "";
        String oName = "";
        int aAge = -1;
        AnimalType aType = null;

        int randNumAnimals = rand.nextInt(4)+1;

        for (int i = 0; i<randNumAnimals; i++) {
            aName = animalName[rand.nextInt(6)];
            oName = ownerName[rand.nextInt(6)];
            aAge = animalAge[rand.nextInt(6)];
            aType = animalType[rand.nextInt(6)];
            animalList.add(new Animal(aName, oName, aAge, aType));
        }
        return animalList;
    }   
publicstaticarraylistcreateanimalarraylist(){
String[]animalName={“Skye”、“Toby”、“Peppa”、“Charley”、“Nemo”、“Maisie”};
String[]ownerName={“乔·布洛格斯”、“玛丽·赖斯”、“安·卡罗尔”、“希拉·罗迪”、“伊利安·帕克斯”、“露丝·琼斯”};
int[]animalAge={10,5,1,6,2,8,3};
AnimalType[]AnimalType={AnimalType.CAT,AnimalType.COW,AnimalType.DOG,AnimalType.沙鼠,AnimalType.HORSE,AnimalType.SHEEP};
ArrayList animalList=新的ArrayList();
Random rand=新的Random();
int randomNum=0;
字符串aName=“”;
字符串oName=“”;
int aAge=-1;
AnimalType aType=null;
int randNumAnimals=rand.nextInt(4)+1;

对于(inti=0;iJava数组,从0开始。因此,如果数组中有6个项,那么只能从0到5进行pic

因此,为了解决您的问题,您必须更换

rand.nextInt(6)


您的数组的最大内容为
0-5
而不是
0-6
,因此您的内容范围只是从第0个索引到第5个索引stacktrace还应该为您提供它失败的行。这不是问题。
rand.nextInt(6)
将永远不会返回6,它将返回0到5(包括)之间的随机数。请参阅。
rand.nextInt(6)-1