如何创建字符串类型数组而不在java中声明范围?

如何创建字符串类型数组而不在java中声明范围?,java,arrays,string,exception,Java,Arrays,String,Exception,在java中,我通过以下行创建了一个字符串类型数组String[]ars={}此行未显示任何错误。但是当我试图通过这一行插入字符串时,ars[I++]=g其中i等于0,它给出了java.lang.ArrayIndexOutOfBoundsException:0 为什么?阵列的大小是固定的。如果索引等于或超过数组大小,则无法添加元素。i、 e.只能使用0到array.length-1的值。在这里,您试图将索引0处的值分配给一个零大小的数组,从而产生AIOOBE 使用一个集合,如ArrayList,

在java中,我通过以下行创建了一个字符串类型数组
String[]ars={}此行未显示任何错误。但是当我试图通过这一行插入字符串时,
ars[I++]=g
其中i等于0,它给出了
java.lang.ArrayIndexOutOfBoundsException:0

为什么?

阵列的大小是固定的。如果索引等于或超过数组大小,则无法添加元素。i、 e.只能使用
0
array.length
-1的值。在这里,您试图将索引
0
处的值分配给一个零大小的数组,从而产生
AIOOBE


使用一个集合,如
ArrayList
,当添加元素时,它可以根据需要扩展其容量。

在java中,需要指定数组的大小,并且在不创建新数组的情况下无法更改该大小


最好的方法是使用或其他实现。

不要使用数组。使用ArrayList。Java中的数组在分配时是固定长度的,永远不能增加。您的代码使ars引用长度为0的数组,因此除非将其指向新数组,否则它永远不会更大。这就是ArrayList类的用途,它是一个可变长度的数组,可以随时间增长/收缩。

数组的大小是固定的,创建后不能向其中添加元素。由于数组的大小为0,因此无法在索引0处访问它

如果要在创建集合后将元素添加到
String
s集合中,则可能需要考虑使用集合,例如
java.util.ArrayList
。您可以这样使用它:

//import java.util.*;
ArrayList<String> ars = new ArrayList<String>();
ars.add(g);
//导入java.util.*;
ArrayList ars=新的ArrayList();
加上(g);

此错误导致[0]中没有任何内容,{}中没有任何内容

这样,您就有了:字符串a={“zero”,first},其中a[0]=zero,a[1]=first

你也可以这样尝试

声明一个int-tam=0

并创建数组:stringa=newstring[tam]

所以在你可以改变数组的长度之后,
改变变量tam

数组的大小是固定的。你应该选择适合你需要的课程。我认为ArrayList可能是您需要的集合之一?字符串还是整数@Jashaszun@TusharTushKhush由于
size
方法返回
ArrayList
的大小,因此它返回一个
整数。返回
字符串
没有意义。