在 Java 中将所有数组元素初始化为零
Mohammad Irfan
2023年10月12日
- 在 Java 中将数组元素初始化为零
-
使用 Java 中的
fill()
方法将数组元素初始化为零 -
使用 Java 中的
nCopies()
方法将数组元素初始化为零 - 在 Java 中通过重新分配将数组元素初始化为零
-
使用 Java 中的
for
循环将数组元素初始化为零
本教程介绍了如何在 Java 中将所有数组元素初始化为零的程序。你会找到有用的示例代码来指导你完成此过程。
在 Java 中,数组保存类似类型的数据。该对象在运行时由编译器初始化;它的值取决于数组的类型——这意味着整数数组将被初始化为 0,而字符串数组将为空。在这个例子中,我们将使用 fill()
和 nCopies()
等方法以及一些自定义代码将数组元素初始化为零。
在 Java 中将数组元素初始化为零
默认情况下,在 Java 中,int、short、byte 和 long 数组等数据类型初始化为 0。因此,如果你创建这些类型的新数组,则无需将它们初始化为零,因为这已经是它们的默认设置。在下面的示例中,我们创建了两个具有 int
和 byte
类型的数组,并看到它们的默认值为零。
public class SimpleTesting {
public static void main(String[] args) {
int arr[] = new int[2];
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
byte barr[] = new byte[2];
for (int i = 0; i < barr.length; i++) {
System.out.println(barr[i]);
}
}
}
输出:
0
0
0
0
使用 Java 中的 fill()
方法将数组元素初始化为零
如果一个数组已经有元素并且你想用 0 初始化它,你应该使用 Arrays
类的 fill()
方法来填充数组的指定值。请参考下面的示例:
import java.util.Arrays;
public class SimpleTesting {
public static void main(String[] args) {
int arr[] = new int[] {12, 23, 45, 58};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
System.out.println("Array after initialize to zero");
Arrays.fill(arr, 0);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
输出:
12
23
45
58
Array after initialize to zero
0
0
0
0
使用 Java 中的 nCopies()
方法将数组元素初始化为零
在这里,我们使用了 Collections
类的 nCopies()
方法来创建数组的副本,而 toArray()
方法将元素转换为整数数组。请参考下面的示例:
import java.util.Collections;
public class SimpleTesting {
public static void main(String[] args) {
int arr[] = new int[] {12, 23, 45, 58};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
System.out.println("Array after initialize to zero");
Integer[] arr2 = Collections.nCopies(arr.length, 0).toArray(new Integer[0]);
for (int i = 0; i < arr2.length; i++) {
System.out.println(arr2[i]);
}
}
}
输出:
12
23
45
58
Array after initialize to zero
0
0
0
0
在 Java 中通过重新分配将数组元素初始化为零
这种方法是一种新的棘手解决方案,我们创建一个具有相同大小和类型的新数组,然后将其引用分配给原始数组,从而重置原始数组。结果,所有元素都被初始化为 0。这是一个例子:
public class SimpleTesting {
public static void main(String[] args) {
int arr[] = new int[] {12, 23, 45, 58};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
int[] arr2 = new int[4];
arr = arr2;
System.out.println("Array after initialize to zero");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
输出:
12
23
45
58
Array after initialize to zero
0
0
0
0
使用 Java 中的 for
循环将数组元素初始化为零
这个过程是我们使用 for
循环的较旧和最不推荐的方法之一。在每次迭代中,我们为数组的每个索引分配 0,使数组的所有元素初始化为 0。检查此代码块作为示例:
public class SimpleTesting {
public static void main(String[] args) {
int arr[] = new int[] {12, 23, 45, 58};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
System.out.println("Array after initialize to zero");
for (int i = 0; i < arr.length; i++) {
arr[i] = 0;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
输出:
12
23
45
58
Array after initialize to zero
0
0
0
0