我确信这里缺少一些简单的东西,但是我有一个名为 coinBox 的 Coin 对象的二维数组,我已经初始化了它,并且我想使用 foreach 循环用 Coin 对象填充它。当我使用常规的 for 循环时,它工作得很好,但是使用 for every 时,我最终会发现 coinBox 中的所有 Coin 对象都保持为空。这是我的代码。
for(int r = 0; r < coinBox.length;r++){
for(int c = 0; c < coinBox[r].length;c++){
coinBox[r][c] = new Coin(country,0,0);
}
}
for(Coin[] coin : coinBox){
for(Coin c : coin){
c = new Coin(country,0,0);
}
}
最佳答案
如果是 for-each 数组,例如
for(Coin c : coin){
//do something with `c`
}
与
相同for(int i = 0; i<coin.length; i++){
Coin c = coin[i];
//do something with `c`
}
正如您所见,Coin c 是局部变量,它保存数组中位置 i
的值。所以每次你这样做
c = new Coin(country,0,0);
您正在为该局部变量c
分配新值,这不会影响数组。
关于java - 在 Java 中用 foreach 填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35960840/