java - 在 Java 中用 foreach 填充二维数组

标签 java arrays

我确信这里缺少一些简单的东西,但是我有一个名为 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/

相关文章:

java - 使用android手机闲置时如何设置闹钟?

java.net.MalformedURLException : unknown protocol: location

java - 在 Android (java) 上解析 json 时出错

java - Java中的数组修改(更改数组 "resolution")

android - JsonAdapter 无法打印数据

java - 在自定义域 URL 地址上公开 appengine 云端点 api

java - 扫描仪应该在这个程序中放在哪里?

mysql - Node mysql批量插入带有express数组参数

arrays - 有没有办法创建一个可以接受数组和范围作为输入的 VBA 函数?

php - 比较两个数组,两个数组之间是否有相同的元素?