🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Java 数组 > 原文: [https://www.programiz.com/java-programming/arrays](https://www.programiz.com/java-programming/arrays) #### 在本教程中,我们将学习在 Java 中使用数组。 我们将借助示例学习声明,初始化和访问数组元素。 数组是相似类型数据的集合。 它是一个容器,用于保存一种单一类型的数据(值)。 例如,您可以创建一个可以容纳 100 个`int`类型值的数组。 在 Java 中,数组是一种基本结构,可让您方便地存储和访问大量值。 * * * ## 如何声明数组? 在 Java 中,这是我们如何声明数组的方法。 ```java dataType[] arrayName; ``` * `dataType` - 它可以是[基本数据类型](/java-programming/variables-primitive-data-types#data-types),例如`int`,`char`,`double`,`byte`等,或 [Java 对象](/java-programming/class-objects) * `arrayName` - 它是[标识符](/java-programming/keywords-identifiers#identifiers) 让我们举个例子 ```java double[] data; ``` 在这里,`data`是一个数组,可以保存`double`类型的值。 **但是,可以容纳多少个元素?** 好问题! 我们必须为数组分配内存。 内存将定义数组可以容纳的元质数。 ```java data = new Double[10]; ``` 在这里,数组的大小为 10。这意味着它可以容纳 10 个元素(10 个`double`类型值)。 数组的大小也称为数组的长度。 **注意**:一旦定义了数组的长度,就不能在程序中对其进行更改。 让我们再举一个例子: ```java int[] age; age = new int[5]; ``` 在此,`age`是一个数组。 它可以容纳 5 个`int`类型的值。 在 Java 中,我们可以在一个语句中声明并分配数组的内存。 例如, ```java int[] age = new int[5]; ``` * * * ## Java 数组索引 在 Java 中,数组中的每个元素都与一个数字关联。 该数字称为数组索引。 我们可以使用这些索引访问数组的元素。 例如, ```java int[] age = new int[5]; ``` ![Java array index](https://img.kancloud.cn/71/4d/714d69e9ddb9ac70a413e880ab14b189_600x158.png "Java Array Index") Java 数组索引 在这里,我们有一个长度为 5 的数组。在图中,我们可以看到每个元素都由一个数字(数组索引)组成。 数组索引始终从 0 开始。 现在,我们可以使用索引号访问数组的元素。 例如,访问数组的第一个元素可以使用`age[0]`,第二个元素可以使用`age[1]`进行访问,依此类推。 **注意**:如果数组的长度为`n`,则数组的第一个元素为`arrayName[0]`,最后一个元素为`arrayName[n-1]`。 如果我们没有将任何值存储到数组,则数组将自行存储一些默认值(`int`类型为`0`,`boolean`类型为`false`)。 例如, ```java class ArrayExample { public static void main(String[] args) { // create an array of length 5 int[] age = new int[5]; // access each element of the array using the index number System.out.println(age[0]); System.out.println(age[1]); System.out.println(age[2]); System.out.println(age[3]); System.out.println(age[4]); } } ``` **输出**: ```java 0 0 0 0 0 ``` 在上面的示例中,我们创建了一个名为`age`的数组。 但是,我们没有为该数组分配任何值。 因此,当我们访问数组的各个元素时,默认值将显示在屏幕上。 在这里,我们正在单独访问数组的元素。 有一种使用循环(通常为[`for`循环](/java-programming/for-loop))访问数组元素的更好方法。 例如, ```java class ArrayExample { public static void main(String[] args) { // create an array of length 5 int[] age = new int[5]; // accessing elements using for loop for (int i = 0; i < 5; ++i) { System.out.println(age[i]); } } } ``` **输出**: ```java 0 0 0 0 0 ``` * * * ## 如何在 Java 中初始化数组? 在 Java 中,我们可以在声明期间初始化数组,也可以根据需要在程序中稍后进行初始化。 ### 声明期间初始化数组 这是在声明过程中初始化数组的方法。 ```java int[] age = {12, 4, 5, 2, 5}; ``` 该语句创建一个名为`age`的数组,并使用大括号中提供的值对其进行初始化。 数组的长度由花括号内用逗号分隔的值的数量确定。 在我们的示例中,`age`的长度为 5。 ![Elements are stored in the array](https://img.kancloud.cn/2d/d7/2dd7d7f115c335ee6a79554bc78d787e_380x94.png "Array initialization") Java 数组初始化 让我们编写一个简单的程序来打印此数组的元素。 ```java class ArrayExample { public static void main(String[] args) { // create an array int[] age = {12, 4, 5, 2, 5}; // access elements of tha arau for (int i = 0; i < 5; ++i) { System.out.println("Element at index " + i +": " + age[i]); } } } ``` **输出**: ```java Element at index 0: 12 Element at index 1: 4 Element at index 2: 5 Element at index 3: 2 Element at index 4: 5 ``` * * * ## 如何访问数组元素? 如前所述,我们可以使用数字索引轻松访问和更改数组的元素。 例如, ```java class ArrayExample { public static void main(String[] args) { int[] age = new int[5]; // insert 14 to third element age[2] = 14; // insert 34 to first element age[0] = 34; for (int i = 0; i < 5; ++i) { System.out.println("Element at index " + i +": " + age[i]); } } } ``` **输出**: ```java Element at index 0: 34 Element at index 1: 0 Element at index 2: 14 Element at index 3: 0 Element at index 4: 0 ``` * * * ## 示例:Java 数组 下面的程序计算存储在`int`类型的数组中的值的总和和平均值。 ```java class SumAverage { public static void main(String[] args) { int[] numbers = {2, -9, 0, 5, 12, -25, 22, 9, 8, 12}; int sum = 0; Double average; // for each loop is used to access elements for (int number: numbers) { sum += number; } int arrayLength = numbers.length; // Change sum and arrayLength to double as average is in double average = ((double)sum / (double)arrayLength); System.out.println("Sum = " + sum); System.out.println("Average = " + average); } } ``` **输出**: ```java Sum = 36 Average = 3.6 ``` 在上面的示例中,我们创建了一个名为`number`的数组。 我们已经使用`for...each`循环来访问数组的每个元素。 要了解有关`for...each`循环的更多信息,请访问 [Java `for...each`循环](/java-programming/enhanced-for-loop)。 在循环内部,我们正在计算每个元素的总和。 注意这一行, ```java int arrayLength = number.length; ``` 在这里,我们使用数组的[长度属性](http://stackoverflow.com/questions/8755812/array-length-in-java)计算数组的大小。 然后,我们使用以下公式计算平均值: ```java average = ((double)sum / (double)arrayLength); ``` 如您所见,我们正在将`int`值转换为`double`。 在 Java 中,这称为类型转换。 要了解有关类型转换的更多信息,请访问 [Java Type Casting](/java-programming/typecasting) 。 _______________________________________________________________________ ### 多维数组 到目前为止,我们提到的数组称为一维数组。 但是,我们可以用 Java 声明多维数组。 多维数组是数组的数组。 也就是说,多维数组的每个元素都是数组本身。 例如, ```java double[][] matrix = {{1.2, 4.3, 4.0}, {4.1, -1.1} }; ``` 在这里,我们创建了一个名为矩阵的多维数组。 它是一个二维数组。 要了解更多信息,请访问 [Java 多维数组](/java-programming/multidimensional-array)。 * * * 还请查看以下来源: * *Java 复制数组* * *Java 数组方法* * *Java `ArrayList`和列表到数组* * *Java 字符串数组* * *Java `int`数组* * *Java `double`数组* * *Java 对象数组* * *Java 字符串到数组和数组到字符串的转换* * *如何使用 Java 打印数组?* * *在 Java 中数组是否可以具有动态长度?*