是否可以使用“高级” for循环在Java中初始化数组?
例如
Integer[ ] numbers = new Integer[20];
int counter = 0;
for ( Integer i : numbers )
{
i = counter++;
}
for ( Integer i : numbers )
{
System.out.println(i);
}
这会打印所有空值,这是为什么?
不,因为您没有分配给数组,而是分配给了名为的临时变量i
。阵列看不到更改。
下面显示了使用普通for
循环的大致等效代码。这应该使您更容易了解为什么无法更新阵列:
for (int j = 0; j < numbers.length; j++) {
Integer i = arr[j]; // i is null here.
i = counter++; // Assigns to i. Does not assign to the array.
}
第一行代码是什么意思?它如何调整数组大小?第二行代码如何初始化该字节数组(如果是)?
因此,我对python(在Spyder IDE3.8中使用Python3)相对来说是个新手。我有下面的主要计算文件,其中几个函数汇集在一起,并循环通过。现在,我试图用等级函数来评估spray_pressure、spray_angle和particle_size的单个值是否在给定的边框中。如果不是,则0转到新数组,如果是,则实际值存储在新数组中。所以我想将所有的输出存储在4个新的数组spray_pr
问题内容: 我有这个代码 有人可以告诉我我在这里到底在做什么错,我该如何纠正?我只需要将所有数组元素初始化为布尔型false。谢谢 问题答案: 我只需要将所有数组元素初始化为布尔型false。 请改用任一方法,以便所有值默认为: 或者 使用填充整个数组: 另请注意,数组索引基于零。该行如你有会导致。要了解有关Java中数组的更多信息,请查阅此基本Oracle教程。
问题内容: 我正在初始化这样的数组: NetBeans在此行指出一个错误: 我该如何解决这个问题? 问题答案: 上面的信息不正确(语法错误)。这意味着你正在分配一个仅可容纳元素的数组。 如果要初始化数组,请尝试使用: 注意两个声明之间的区别。将新数组分配给声明的变量时,new必须使用。 即使你纠正了语法,访问仍然是不正确的(你只能访问,因为Java中的数组索引是基于0的)。访问]将抛出。
问题内容: 考虑: 如何做到这一点,以便可以从其他方法调用数组? 问题答案: 这意味着您必须像这样初始化它: 如果要使用数组初始化器,则不能拆分声明和赋值。
问题内容: 知道为什么for循环初始化程序中的此struct表达式在编译时会导致语法错误吗?在这种情况下,指向struct的指针工作正常,但是我需要像波纹管这样的局部变量。感谢您的建议! 问题答案: 简化您的代码: 给出编译时错误: 预期的布尔值或范围表达式,找到简单的语句(缺少复合文字周围的括号?)(以及另外1个错误) 该构造难以解析。不管是复合文字的一部分还是语句本身( 块)的开头括号,开头括