在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
:
每个类变量,实例变量或数组组件在创建时都会用 默认值 初始化(第15.9节,第15.10节)。[…]对于type
int
,默认值为零,即0
。
如果要将一维数组初始化为其他值,则可以使用java.util.Arrays.fill()(当然,它会在内部使用循环)。
我在中用C创建了一个包含10个元素的数组,并仅为其中一些元素声明了值。当打印出数组时,我注意到其中一个元素(保持不变)没有初始化为零。相反,每次都将其初始化为不同的大值(即)。然后,我注释掉了所有代码,只保留了最初声明的数组。 运行代码时,数组的前8个元素被初始化为零,数组中的第9个元素被初始化为一个大值(如),该值每次都会更改,最后一个元素被一致地初始化为相同的非零数字。 有人知道为什么会这样吗
问题内容: 根据JLS,数组应在初始化后立即用零填充。但是,我面临的情况并非如此。这种行为首先在JDK 7u4中发生,并且在以后的所有更新中也发生(我使用64位实现)。以下代码引发异常: 该异常在JVM执行代码块的编译之后发生,并且不会出现带有标志的异常。此外,该语句(与该代码中的所有其他语句一样)是必需的,并且如果不存在该异常,则不会发生。显然,此可能的错误与JVM优化有关。对于这种行为有什么想
根据 JLS, 数组应由零填充。但是,我面临的情况并非如此。这种行为首先发生在JDK 7u4中,也发生在所有以后的更新中(我使用64位实现)。下面的代码引发异常: 异常发生在JVM执行代码块编译之后,并且不会以标志出现。此外,语句(与此代码中的所有其他语句一样)是必要的,如果不存在异常,则不会发生。很明显,这个可能的错误与一些JVM优化有关。对于这种行为的原因有什么想法吗? 更新:< br >我在
在中,我们有函数可以实现我的愿望,但是在中,我如何将所有元素初始化为特定的值呢?每当我们编写时,只需初始化一个大小为10的数组,所有元素都等于零。我只想为我的一个数组更改这个初始化整数。也就是说,我想初始化一个数组,它的所有元素都等于。否则,我必须在初始化后放置一个循环,范围从索引到索引,在该循环中,我将元素分配给。下面是更多理解的代码-- 我说得对吗?同样的还有别的办法吗?
问题内容: 在我们有可以实现我的愿望的功能,但我怎么能将所有元素初始化为一个特定的值?每当我们编写时,这只会初始化一个大小为10的数组,其中所有元素均等于零。我只想为我的一个数组更改此初始化整数。即我想初始化一个数组,其中所有元素都等于。否则,我必须在初始化之后放置一个循环,该循环的范围从索引到索引,并且在该循环内,我将元素分配给。以下是用于更多理解的代码- 我会正确吗?还有其他方法可以做到吗?
问题内容: 在bash中以这种方式声明数组是否会将所有数组元素初始化为0? 如果没有,如何将数组元素初始化为0? 问题答案: 您的示例将声明/初始化一个空数组。 如果要初始化数组成员,请执行以下操作: 如果要初始化具有100个成员的数组,可以执行以下操作: 请记住,bash中的数组不是固定长度的(索引也不必是连续的)。因此,除非知道数字应为多少,否则无法初始化数组的 所有 成员。