在java中,我已经通过这一行创建了一个String类型数组String [] ars = {};
此行没有显示错误。但是当我试图通过这一行ars[i++] = g;
插入一个字符串,其中i等于0时,它给了我java.lang.ArrayIndexOutOfBoundsException: 0
为什么呢?
答案 0 :(得分:3)
数组是固定大小的,您无法在创建后向其添加元素。由于您的数组大小为0,因此在索引0处访问它的数据超出范围。
如果要在创建集合后向String
s集合中添加元素,则可能需要考虑使用java.util.ArrayList<String>
等集合。您可以像这样使用它:
//import java.util.*;
ArrayList<String> ars = new ArrayList<String>();
ars.add(g);
答案 1 :(得分:2)
阵列的大小是固定的。如果索引等于或超过数组大小,则无法添加元素。即,只能使用0
到array.length
- 1的值。在这里,您尝试将索引0
的值分配给零大小的数组,从而生成AIOOBE
。
使用ArrayList
等集合,如果需要添加元素,可以扩展其容量。
答案 2 :(得分:1)
答案 3 :(得分:1)
不要使用数组。使用ArrayList。 Java中的数组在分配时是固定长度,永远不能增加。你的代码使ars引用一个长度为0的数组,所以除非你把它指向一个新的数组,否则它永远不会更大。这就是ArrayList类的目的 - 是一个可以随时间增长/缩小的可变长度数组。
答案 4 :(得分:0)
这个错误导致你在[0]中没有任何东西,{};
中没有任何内容这样,你有一些东西:字符串a = {“零”,第一个},其中a [0] = 0,a [1] =第一个
你也可以尝试这种方式;
声明一个int tam = 0;
并创建数组:String a = new String [tam];
所以你可以替换数组的长度, 改变变量tam;