如何在Java中初始化一个数组?

我像这样初始化一个数组:

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};

我怎么解决这个问题?

1739199 次浏览

试一试

data = new int[] {10,20,30,40,50,60,71,80,90,91 };

您正在尝试将数组的第10个元素设置为数组try

data = new int[] {10,20,30,40,50,60,71,80,90,91};

FTFY

data[10] = {10,20,30,40,50,60,71,80,90,91};

以上内容不正确(语法错误)。这意味着你在给data[10]赋值一个数组,它只能容纳一个元素。

如果你想初始化一个数组,尝试使用数组初始值设定项:

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[0] = 10;
data[1] = 20;
...
data[9] = 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;
}
}
}

语法

 Datatype[] variable = new Datatype[] { value1,value2.... }


Datatype variable[]  = new Datatype[] { value1,value2.... }

例子:

int [] points = new int[]{ 1,2,3,4 };

你可以:

int[] data = {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};
}
}

而不是学习非官方网站学习甲骨文网站

链接:点击这里

你可以找到初始化和声明完整的描述*

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
}
< p > 输入: 10 / /数组的大小 10 20. 30. 40 50 60 71 80 90 91 < / p >

显示数据:

for (int i = 0; i < a.length; i++)
{
System.out.println(a[i] + " ");
}

< >强输出: 10 20 30 40 50 60 71 80 90 91

你不能使用数组初始化式,比如。

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};
}


}

如你所见,括号是空的。不需要告诉括号之间的大小,因为初始化及其大小是由花括号之间的元素的计数指定的。

int myArray2[] = new int[3];
int[] myArray = new int[3];
int[] intArray = {13, 14, 15};
int[] intArray = new int[]{7, 8, 9};
int[] intArray = IntStream.range(1, 11).toArray();
int[] intArray = IntStream.rangeClosed(1, 10).toArray();
int[] intArray = IntStream.of(6, 2, 4, 5, 7).toArray();
int[] intArray = IntStream.of(6, 2, 4, 5, 7).sorted().toArray();