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