Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组越界异常?_Java_Arrays - Fatal编程技术网

Java 数组越界异常?

Java 数组越界异常?,java,arrays,Java,Arrays,好的,这是大学里的一个实验室。尝试接受用户输入的整数,将它们放入数组并打印出来 当我试图编译时,我遇到了一个错误 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常:0 位于Lab3.main(Lab3.java:12) 公共类Lab3{ 公共静态void main(字符串[]args){ int[]First={}; 对于(int i=0;i,通过 int[] First = {}; // is the same as int[] Fir

好的,这是大学里的一个实验室。尝试接受用户输入的整数,将它们放入数组并打印出来

当我试图编译时,我遇到了一个错误

线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常:0 位于Lab3.main(Lab3.java:12)

公共类Lab3{
公共静态void main(字符串[]args){
int[]First={};
对于(int i=0;i,通过

int[] First = {};
// is the same as
int[] First = new int[0];
您正在创建一个包含0个元素的数组。然后尝试访问第一个元素

System.out.println("First is:"+First[0]); // access first element of empty array?
由于没有元素,如何访问它们?创建一个包含10个元素的数组

int[] First = new int[10];
如果您想要静态集合(不可调整大小)或使用
列表
实现来拥有动态集合(可调整大小)


Java命名约定规定变量应以小写字母开头。请使用
camelCase

int[] First = {};
初始化长度为0的数组

First[0]
不存在。请将长度作为声明的一部分或稍后提及

First=new int[10];//创建一个包含10个int的数组

请注意,上面将在
First[11]

如果您不确定尺寸,可以改用

List first=new ArrayList();
首先,添加((int)Math.random()*10+1);

你应该使用列表,因为你的数组会随着时间的推移而增长。这就是为什么你不能先访问[i],因为你的数组是用一个空数组初始化的(并且会一直保持这样)。你也可以用一些元素初始化数组(不是你的用例)或者使用具有初始容量的new。

您应该改用列表,因为您的数组将随着时间的推移而增长。

初始化空数组(0个字段),然后尝试访问其第一个字段(索引0)。您也可以使用arrayList。它更灵活。
ArrayIndexOutOfBoundsException
不会发生在该行中,因为它受循环保护。异常几乎会在代码末尾的
println
语句中引发。谢谢!下次会知道。
int[] First = {};
List<Integer> first = new ArrayList<Integer>();
first.add((int)Math.random() *10 +1);