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