在C/ c++中

int arr[10] = {0};

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

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

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

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

当前回答

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

其他回答

在零的情况下不需要初始化,因为Java中的int默认值为零。 对于非0的值,java.util.Arrays提供了许多选项,最简单的一个是fill方法。

int[] arr = new int[5];
Arrays.fill(arr, -1);
System.out.println(Arrays.toString(arr));  //[-1, -1, -1, -1, -1 ]

int [] arr = new int[5];
// fill value 1 from index 0, inclusive, to index 3, exclusive
Arrays.fill(arr, 0, 3, -1 )
System.out.println(Arrays.toString(arr)); // [-1, -1, -1, 0, 0]

我们也可以使用Arrays.setAll()如果我们想在条件的基础上填充值:

int[] array = new int[20];
Arrays.setAll(array, p -> p > 10 ? -1 : p);

int[] arr = new int[5];
Arrays.setAll(arr, i -> i);
System.out.println(Arrays.toString(arr));   // [0, 1, 2, 3, 4]

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

您可以简单地执行以下操作

 int[] arrayOfZeros= new int[SizeVar];

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

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

int[] arr = new int[10];

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

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