Java 为数组赋值时获取ArrayIndexOutofBoundException:0

Java 为数组赋值时获取ArrayIndexOutofBoundException:0,java,arrays,exception,Java,Arrays,Exception,当我试图在jsp中为数组赋值时,我得到的是ArrayIndexOutOfBoundsException:0 下面是我的代码 String[] imgarray = {}; int ival = 0; // Below code in a while loop imgarray[ival] = iname; // Value of iname is 1.jpg, 87.jpg, 114.jpg etc... ival++; 如果我做错了什么,请告诉我 谢谢数组不像集合那样动态增长。因此,在向

当我试图在jsp中为数组赋值时,我得到的是ArrayIndexOutOfBoundsException:0

下面是我的代码

String[] imgarray = {};
int ival = 0;

// Below code in a while loop 
imgarray[ival] = iname; // Value of iname is 1.jpg, 87.jpg, 114.jpg etc...
ival++;
如果我做错了什么,请告诉我


谢谢

数组不像集合那样动态增长。因此,在向数组中添加元素之前,必须给出数组的大小

String[] imgarray = new String[10];
int ival = 0;

// Below code in a while loop 
imgarray[ival] = iname; // Value of iname is 1.jpg, 87.jpg, 114.jpg etc...
ival++;

这应该是可行的。

如果您事先知道数组将容纳多少个元素,那么您应该在创建时设置数组的大小,正如Ramesh所说,因为数组的大小在创建后无法更改

如果您事先不知道数组必须容纳多少个元素,则需要另一个结构。我建议使用ArrayList:

List<String> list = new ArrayList<String>();
// int ival = 0 <- not needed with a List

// below code in a while loop
list.add(iname);
// ival++
List List=new ArrayList();

//int ival=0 Ramesh,我尝试了你的解决方案。但是,它会导致java.lang.ArrayIndexOutOfBoundsException:当然是10。您需要将数组的大小设置为它将容纳的元素数。Ramesh随机选择了10个元素。我不确定元素的数量,但保证少于60个。当我写入时,String[]imgarray=新字符串[60];它会导致java.lang.ArrayIndexOutOfBoundsException:60这意味着您要向数组中添加60多个元素。也许是因为循环中的一个错误,你不断地添加相同的元素。是的,这是我的错误。元素的数量大约为70个,这导致了异常。谢谢你,艾蒂安和拉梅什。