专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java声明数组和初始化数组

Java声明数组和初始化数组

更新时间:2022-06-01 11:07:22 来源:动力节点 浏览930次

在本教程中,动力节点小编将带大家了解如何在 Java 中声明和初始化数组。

通过提供类型和名称,我们在 Java 中声明一个数组,就像我们声明其他变量一样:

int[] myArray;

要在声明数组时初始化或实例化数组,这意味着我们在创建数组时分配值,我们可以使用以下速记语法:

int[] myArray = {13, 14, 15};

或者,您可以生成一个值流并将其分配回数组:

int[] intArray = IntStream.range(1, 11).toArray();
int[] intArray = IntStream.rangeClosed(1, 10).toArray();
int[] intArray = IntStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).toArray();

Java中的数组声明

Java 中数组对象的声明遵循与声明 Java 变量相同的逻辑。我们识别数组元素的数据类型和变量的名称,同时添加方括号[]来表示它的数组。

以下是声明数组的两种有效方法:

int intArray[];
int[] intArray;

第二个选项通常是首选,因为它更清楚地表明了哪种类型intArray。

请注意,我们只创建了一个数组引用。由于大小未知,因此没有为数组分配内存,我们也无能为力。

Java中的数组初始化

要使用数组,我们可以使用new关键字对其进行初始化,后跟数组的数据类型,以及包含其大小的方括号:

int[] intArray = new int[10];

这会为大小为 的数组分配内存10。这个大小是不可变的。

Java 根据元素类型使用默认值填充我们的数组 -0对于整数、false布尔值、null对象等。让我们更多地了解如何用我们想要的值实例化一个数组。

使用非默认值初始化数组的缓慢方法是一一分配值:

int[] intArray = new int[10];
intArray[0] = 22;

在本例中,您声明了一个包含 10 个元素的整数数组对象,因此您可以使用其索引值初始化每个元素。

{}最常见和最方便的策略是使用包含数组元素的大括号同时声明和初始化数组。

以下代码使用三个元素(13、14 和 15)初始化一个整数数组:

int intArray[] = {13, 14, 15};

请记住,数组对象的大小将是您在大括号内指定的元素数。因此,该数组对象的大小为 3。

此方法也适用于对象。如果我们想初始化一个由三个字符串组成的数组,我们会这样做:

int[] stringArray = {"zelda", "link", "ganon"};

Java 也允许我们使用new关键字来初始化数组:

int[] intArray = new int[]{13, 14, 15};
int[] stringArray = new String[]{"zelda", "link", "ganon"};

它的工作方式相同。

注意:如果您要创建一个返回初始化数组的方法,则必须使用new带有花括号的关键字。在方法中返回数组时,单独的花括号不起作用:

public String[] getNames() {
    return new String[]{"zelda", "link", "ganon"}; // Works
}
public String[] getNames() {
    return {"zelda", "link", "ganon"}; // Doesn't work
}

IntStream.range()

如果您要声明和初始化一个整数数组,您可以选择使用IntStreamJava 接口:

int[] intArray = IntStream.range(1, 11).toArray();

上面的代码创建了一个由十个整数组成的数组,其中包含数字 1 到 10:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

该IntStream接口有一个range()将序列的开头和结尾作为参数的方法。请记住,第二个参数不包括在内,而第一个参数是。

然后我们使用methodtoArray()方法将其转换为数组。

注意: IntStream只是可用于创建范围的少数类之一。您也可以在这些示例中的任何一个中使用 aDoubleStream或LongStream。

IntStream.rangeClosed()

如果您想覆盖该特征,并包含最后一个元素,您可以使用IntStream.rangeClosed():

int[] intArray = IntStream.rangeClosed(1, 10).toArray();

这将产生一个包含 10 个整数的数组,从 1 到 10:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

IntStream.of()

该IntStream.of()方法的功能与声明具有一定数量值的数组非常相似,例如:

int[] intArray = new int[]{6, 2, 4, 5, 7};

在这里,我们指定调用中的元素of():

int[] intArray = IntStream.of(6, 2, 4, 5, 7).toArray();

这将生成一个保留元素顺序的数组:

[6, 2, 4, 5, 7]

或者,您甚至可以sorted()在此调用方法,以便在初始化数组时对其进行排序:

int[] intArray = IntStream.of(6, 2, 4, 5, 7).sorted().toArray();

这导致具有以下元素顺序的数组:

[2, 4, 5, 6, 7]

Java 数组循环初始化

可用于初始化数组的最强大的技术之一是使用for循环使用一些值对其进行初始化。

让我们使用一个循环来初始化一个值为 0 到 9 的整数数组:

int[] intAray = new int[10];	
for (int i = 0; i < intArray.length; i++) {
    int_array[i] = i;
}

这与以下任何较短的选项相同:

int[] intArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] intArray = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] intArray = IntStream.rangeClosed(0, 9).toArray();

当您有更复杂的逻辑来确定数组元素的值时,循环比其他方法更理想。

例如,通过for循环语句,我们可以做一些事情,比如在偶数索引处制作两倍大的元素:

int[] intArray = new int[10];	
for (int i = 0; i < intArray.length; i++) {
    if (i % 2 == 0) {
        int_array[i] = i * 2;
    } else {
        int_array[i] = i;
    }
}

结论

在本文中,我们发现了在 Java 中声明和初始化数组的不同方式和方法。我们使用花括号{}、new关键字和for循环来初始化 Java 中的数组,以便您在不同情况下有多种选择!

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>