在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语言规范中,任何对象的默认/初始值可以如下所示。

对于byte类型,默认值为0,即(byte)的值为0。

对于short类型,缺省值为0,即(short)的值为0。

对于int类型,默认值为0,即0。

对于long类型,缺省值为0,即0L。

对于float类型,默认值为正零,即0.0f。

对于double类型,默认值为正0,即0. d。

对于char类型,默认值是空字符,即'\u0000'。

对于boolean类型,默认值为false。

对于所有引用类型,默认值为null。

考虑到这些,你不需要为数组元素初始化0值,因为默认情况下,int array的所有数组元素都是0。

因为数组是一个容器对象,它拥有固定数量的单一类型的值。 现在数组的类型是int,所以考虑所有数组元素的默认值将自动为0,因为它持有int类型。

现在考虑String类型的数组,这样所有数组元素的默认值都是null。

为什么不这样做......?

你可以在你的问题中建议使用循环来分配空值。

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

但如果你这样做,那么它将是一个无用的机器周期损失。 如果你在你的应用程序中使用很多数组,并且你对每个数组都这样做,那么它将影响应用程序的性能到相当大的水平。

机器使用周期越长==>处理数据的时间越多==>输出时间将显著增加。这样你的应用程序数据处理可以被认为是低级别的(慢到某个级别)。

其他回答

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

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

int[] arr = new int[10];

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

是的,数组中的int值初始化为0。但你不能保证这一点。Oracle文档指出这是一种糟糕的编码实践。

您可以使用现有的数组大小创建一个新的空数组,并将它们赋给您的数组。这可能比其他方法更快。 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语言规范中,任何对象的默认/初始值可以如下所示。

对于byte类型,默认值为0,即(byte)的值为0。

对于short类型,缺省值为0,即(short)的值为0。

对于int类型,默认值为0,即0。

对于long类型,缺省值为0,即0L。

对于float类型,默认值为正零,即0.0f。

对于double类型,默认值为正0,即0. d。

对于char类型,默认值是空字符,即'\u0000'。

对于boolean类型,默认值为false。

对于所有引用类型,默认值为null。

考虑到这些,你不需要为数组元素初始化0值,因为默认情况下,int array的所有数组元素都是0。

因为数组是一个容器对象,它拥有固定数量的单一类型的值。 现在数组的类型是int,所以考虑所有数组元素的默认值将自动为0,因为它持有int类型。

现在考虑String类型的数组,这样所有数组元素的默认值都是null。

为什么不这样做......?

你可以在你的问题中建议使用循环来分配空值。

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

但如果你这样做,那么它将是一个无用的机器周期损失。 如果你在你的应用程序中使用很多数组,并且你对每个数组都这样做,那么它将影响应用程序的性能到相当大的水平。

机器使用周期越长==>处理数据的时间越多==>输出时间将显著增加。这样你的应用程序数据处理可以被认为是低级别的(慢到某个级别)。