【发布时间】:2013-12-01 05:16:06
【问题描述】:
为什么我们不能在声明变量后使用数组初始化器。
例如:
int arr[];
arr = {1,2,3,4};
但是,
int arr[] = {1,2,3,4};
是正确的。 声明变量后有什么方法可以使用数组初始化。
【问题讨论】:
-
@sᴜʀᴇsʜᴀᴛᴛᴀ - 这与您链接的问题不同。
标签: java
为什么我们不能在声明变量后使用数组初始化器。
例如:
int arr[];
arr = {1,2,3,4};
但是,
int arr[] = {1,2,3,4};
是正确的。 声明变量后有什么方法可以使用数组初始化。
【问题讨论】:
标签: java
你可以这样做。
int arr[];
arr = new int[]{1, 2, 3, 4};
【讨论】:
因为数组在 java 中不是这样工作的。
int arr[4];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
【讨论】:
示例:-
int data[] = new int[] {10,20,30,40,50,60,71,80,90,91 };
或
int data[];
data=new int[] {10,20,30,40,50,60,71,80,90,91 };
【讨论】:
创建数组、声明数组、分配数组和初始化数组分为三个步骤。
声明数组 与 Java 中的其他变量一样,数组必须具有特定的类型,如 byte、int、String 或 double。只有适当类型的变量才能存储在数组中。例如,您不能拥有一个同时存储整数和字符串的数组。
与 Java 中的所有其他变量一样,必须声明数组。当你声明一个数组变量时,你在类型后面加上 [] 表示这个变量是一个数组。以下是一些示例:
int[] k; 浮动[] yt; 字符串[] 名称;
换句话说,你声明一个数组就像你声明任何其他变量一样,除了你在变量类型的末尾附加括号。
分配数组 声明一个数组只是说明它是什么。它不会创建数组。要实际创建数组(或任何其他对象),请使用 new 运算符。当我们创建一个数组时,我们需要告诉编译器其中将存储多少元素。下面是我们如何创建上面声明的变量:
k = 新的 int[3]; yt = 新浮点数[7]; 名称 = 新字符串 [50];
括号中的数字指定数组的维度;即它必须有多少个槽来保存值。 k 以上的维度可以容纳 3 个整数,yt 可以容纳 7 个浮点数,名称可以容纳 50 个字符串。因此,此步骤有时称为阵列尺寸标注。更常见的是,这称为分配数组,因为这一步实际上是在 RAM 中留出了数组所需的内存。
这也是我们第一次看new操作符。 new 是 java 中的保留字,不仅用于分配数组,还用于分配各种对象。 Java 数组是具有所有含义的成熟对象。现在主要的意思是我们必须用 new 分配它们。
初始化数组 数组的各个元素由数组名称和一个表示它们在数组中的位置的整数引用。我们用来识别它们的数字称为数组的下标或索引。下标是从 0 开始的连续整数。因此上面的数组 k 具有元素 k[0]、k[1] 和 k[2]。由于我们从零开始计数,因此没有 k[3],并且尝试访问它会生成 ArrayIndexOutOfBoundsException。
您可以在任何需要使用不属于数组的类似类型变量的地方使用数组元素。
以下是我们在一直使用的数组中存储值的方式:
k[0] = 2; k[1] = 5; k[2] = -2; yt[6] = 7.5f; 姓名[4] = "弗雷德";
我们甚至可以同时声明、分配和初始化一个数组,提供括号内的初始值列表,如下所示:
int[] k = {1, 2, 3}; float[] yt = {0.0f, 1.2f, 3.4f, -9.87f, 65.4f, 0.0f, 567.9f};
【讨论】: