在C/ c++中
int arr[10] = {0};
...将所有数组元素初始化为0。
Java中有类似的快捷方式吗?
我想避免使用循环,可以吗?
int arr[] = new int[10];
for(int i = 0; i < arr.length; i++) {
arr[i] = 0;
}
在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];
其他回答
是的,数组中的int值初始化为0。但你不能保证这一点。Oracle文档指出这是一种糟糕的编码实践。
在c/cpp中,除了初始化所有带有0下标的数组外,没有其他快捷方式。例:
int arr[10] = {0};
但是在java中有一个神奇的工具叫做Arrays.fill(),它可以用你选择的整数填充数组中的所有值。例:
import java.util.Arrays;
public class Main
{
public static void main(String[] args)
{
int ar[] = {2, 2, 1, 8, 3, 2, 2, 4, 2};
Arrays.fill(ar, 10);
System.out.println("Array completely filled" +
" with 10\n" + Arrays.toString(ar));
}
}
在java中,所有元素(原始整数类型字节短,整型,长)默认初始化为0。你可以保存循环。
另一种方法是在java 8之上使用lambda
Arrays.stream(new Integer[nodelist.size()]).map(e ->
Integer.MAX_VALUE).toArray(Integer[]::new);
将数组声明为类中的实例变量,即在每个方法之外,JVM将给它0作为默认值。你不必再担心了