如何在Java中初始化数组?

时间:2009-12-21 03:59:52

标签: java arrays initialization

我正在初始化这样的数组数据:

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

我该如何解决这个问题?

11 个答案:

答案 0 :(得分:568)

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

答案 1 :(得分:33)

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

答案 2 :(得分:24)

创建大小为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;
        }
    }
}

答案 3 :(得分:14)

你可以这样做:

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

答案 4 :(得分:10)

语法

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

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

示例:

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

答案 5 :(得分:8)

而不是学习非官方网站从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 三十 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

答案 6 :(得分:3)

您不能像这样初始化数组。除了别人的建议外,您还可以:

data[0] = 10;
data[1] = 20;
...
data[9] = 91;

答案 7 :(得分:2)

如果要在构造函数中初始化数组, 你不能使用那些数组初始值设定项,如。

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

}

如您所见,支架是空的。没有必要告诉括号之间的大小,因为初始化及其大小由大括号之间的元素计数指定。

答案 8 :(得分:1)

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

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

FTFY

答案 9 :(得分:0)

也许这会奏效:

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

答案 10 :(得分:0)

声明数组变量

  

要在程序中使用数组,必须声明一个变量以引用该数组,并且必须指定该变量可以引用的数组类型。这是声明数组变量的语法-

语法

dataType[] arrayRefVar;   // preferred way.
or
dataType arrayRefVar[];  // works but not preferred way.
  

注意-首选样式dataType [] arrayRefVar。 dataType arrayRefVar []样式来自C / C ++语言,并已在Java中用于容纳C / C ++程序员。

示例 以下代码片段是此语法的示例-

double[] myList;   // preferred way.
or
double myList[];   // works but not preferred way.

创建阵列

  

您可以使用具有以下语法的new运算符来创建数组-

语法

arrayRefVar = new dataType[arraySize];

上面的语句有两件事-

  1. 它使用新的dataType [arraySize]创建一个数组。

  2. 它将新创建的数组的引用分配给变量arrayRefVar。

  

声明一个数组变量,创建一个数组并将该数组的引用分配给该变量可以组合在一条语句中,如下所示-

dataType[] arrayRefVar = new dataType[arraySize];

或者您可以按如下方式创建数组-

dataType[] arrayRefVar = {value0, value1, ..., valuek};

通过索引访问数组元素。数组索引从0开始;也就是说,它们从0开始到arrayRefVar.length-1。

示例

以下语句声明一个数组变量myList,创建一个包含10个double类型元素的数组,并将其引用分配给myList-

double[] myList = new double[10];

可以以类似的方式初始化二维数组:

示例-语法

dataType[][] arrayRefVar = new dataType[arraySize][arraySize];
Ex- int[][] arr=new int[5][5];