在C/ c++中

int arr[10] = {0};

...将所有数组元素初始化为0。

Java中有类似的快捷方式吗?

我想避免使用循环,可以吗?

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

当前回答

你可以保存循环,初始化已经被设为0。即使是局部变量。

但是为了可读性(公认的最佳实践),请更正您放置括号的位置:

int[] arr = new int[10];

其他回答

你在你的问题中正确地定义了它,它几乎与c++相同。对于基元数据类型,您需要做的就是初始化数组。默认值是int 0。

int[] intArray = new int[10];

在java中,所有元素(原始整数类型字节短,整型,长)默认初始化为0。你可以保存循环。

你可以保存循环,初始化已经被设为0。即使是局部变量。

但是为了可读性(公认的最佳实践),请更正您放置括号的位置:

int[] arr = new int[10];

您可以使用现有的数组大小创建一个新的空数组,并将它们赋给您的数组。这可能比其他方法更快。 Snipet:

package com.array.zero;
public class ArrayZero {
public static void main(String[] args) {
    // Your array with data
    int[] yourArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    //Creating same sized array with 0
    int[] tempArray = new int[yourArray.length];
    Assigning temp array to replace values by zero [0]
    yourArray = tempArray;

    //testing the array size and value to be zero
    for (int item : yourArray) {
        System.out.println(item);
    }
}
}

结果:

0
0
0
0
0    
0
0
0
0

另一种方法是在java 8之上使用lambda

 Arrays.stream(new Integer[nodelist.size()]).map(e -> 
 Integer.MAX_VALUE).toArray(Integer[]::new);