我正在初始化一个这样的数组:
public class Array {
int data[] = new int[10];
/** Creates a new instance of Array */
public Array() {
data[10] = {10,20,30,40,50,60,71,80,90,91};
}
}
NetBeans 在这一行指出了一个错误:
data[10] = {10,20,30,40,50,60,71,80,90,91};
我该如何解决这个问题?
data[10] = {10,20,30,40,50,60,71,80,90,91};
以上不正确(语法错误)。这意味着您正在为 data[10]
分配一个数组,该数组只能包含一个元素。
如果要初始化数组,请尝试使用 Array Initializer:
int[] data = {10,20,30,40,50,60,71,80,90,91};
// or
int[] data;
data = new int[] {10,20,30,40,50,60,71,80,90,91};
注意这两个声明之间的区别。将新数组分配给已声明的变量时,必须使用 new
。
即使您更正了语法,访问 data[10]
仍然不正确(您只能访问 data[0]
到 data[9]
,因为 Java 中的数组索引是从 0 开始的)。访问 data[10]
将引发 ArrayIndexOutOfBoundsException。
尝试
data = new int[] {10,20,30,40,50,60,71,80,90,91 };
当您创建一个大小为 10 的数组时,它分配了 10 个插槽,但从 0 到 9。这个 for 循环可能会帮助您更好地了解这一点。
public class Array {
int[] data = new int[10];
/** Creates a new instance of an int Array */
public Array() {
for(int i = 0; i < data.length; i++) {
data[i] = i*10;
}
}
}
你可以做:
int[] data = {10,20,30,40,50,60,71,80,90,91};
句法
Datatype[] variable = new Datatype[] { value1,value2.... }
Datatype variable[] = new Datatype[] { value1,value2.... }
例子 :
int [] points = new int[]{ 1,2,3,4 };
与其学非官网不如学oracle网站
链接如下:Click here
*您可以找到具有完整描述的初始化和声明 *
int n; // size of array here 10
int[] a = new int[n];
for (int i = 0; i < a.length; i++)
{
a[i] = Integer.parseInt(s.nextLine()); // using Scanner class
}
输入:10//数组大小 10 20 30 40 50 60 71 80 90 91
显示数据:
for (int i = 0; i < a.length; i++)
{
System.out.println(a[i] + " ");
}
输出:10 20 30 40 50 60 71 80 90 91
你不能像这样初始化一个数组。除了其他人的建议之外,您还可以执行以下操作:
data[0] = 10;
data[1] = 20;
...
data[9] = 91;
您正在尝试将数组的第 10 个元素设置为数组尝试
data = new int[] {10,20,30,40,50,60,71,80,90,91};
FTFY
如果你想在构造函数中初始化一个数组,你不能像使用那些数组初始化器一样。
data= {10,20,30,40,50,60,71,80,90,91};
只需将其更改为
data = new int[] {10,20,30,40,50,60,71,80,90,91};
您不必用 data[10] = new int[] { 10,...,91}
指定大小只需用 int[] data;
声明属性/字段并像上面一样初始化它。您的代码的更正版本如下所示:
public class Array {
int[] data;
public Array() {
data = new int[] {10,20,30,40,50,60,71,80,90,91};
}
}
如您所见,括号为空。不需要告诉括号之间的大小,因为初始化及其大小是由大括号之间元素的计数指定的。
也许这会起作用:
public class Array {
int data[] = new int[10];
/* Creates a new instance of Array */
public Array() {
data= {10,20,30,40,50,60,71,80,90,91};
}
}
public static void product(int[] array){ int[] productArray = new int[array.length];
并想设置productArray
zero 的所有值,我应该写什么? (我想我应该写一个循环并将所有值设置为零,有没有更好的方法来做到这一点?)