在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;
}
当前回答
您可以简单地执行以下操作
int[] arrayOfZeros= new int[SizeVar];
其他回答
正如每个人都提到的,初始化后int值已经为零。如果你确实需要将数组值设置为0并想要优化它,请使用System.arraycopy:
static private int[] zeros = new float[64];
...
int[] values = ...
if (zeros.length < values.length) zeros = new int[values.length];
System.arraycopy(zeros, 0, values, 0, values.length);
这在大多数或所有JRE实现中都在幕后使用memcpy。注意,即使是多线程,使用这样的静态也是安全的,因为最坏的情况是多个线程并发地重新分配零,这不会造成任何损害。
你也可以使用数组。填充就像其他人提到的那样。数组。fill可以在智能JVM中使用memcpy,但可能只是一个Java循环和随之而来的边界检查。
当然,要对优化进行基准测试。
您可以简单地执行以下操作
int[] arrayOfZeros= new int[SizeVar];
将数组声明为类中的实例变量,即在每个方法之外,JVM将给它0作为默认值。你不必再担心了
在java中,所有元素(原始整数类型字节短,整型,长)默认初始化为0。你可以保存循环。
如果你正在使用浮点或整数,那么你可以像这样分配默认值…
Integer[] data = new Integer[20];
Arrays.fill(data,new Integer(0));