类型不匹配:无法从int转换为int []

1 java eclipse arrays random

我似乎无法专门为这条线解决的问题.我找了它.作业是实施棒球运动员球衣号码,击球次数和步行次数的应用.必须使用20列和3行的二维数组.我正在设置线路,为球员的击球次数和结果制作随机数.然而,我得到一个无法从int转换为int []的错误.我已经阅读了几个同样问题的其他问题,似乎没有人帮助我.我可能不理解他们,但我仍然无法解决问题.谢谢你,D

import java.util.Random;

public class Stats

public static void main(String[] args) 
{

    int[][] array = { { 1, 2, 3 },
                      { 4, 5, 6 },
                      { 7, 8, 9 }, 
                      { 10, 11, 12 },
                      { 13, 14, 15 },
                      { 16, 17, 18 },
                      { 19, 20, 21 },
                      { 22, 23, 24 },
                      { 25, 26, 27 },
                      { 28, 29, 30 },
                      { 31, 32, 33 }, 
                      { 34, 35, 36 }, 
                      { 37, 38, 39 },
                      { 40, 41, 42 },
                      { 43, 44, 45 },
                      { 46, 47, 48 },
                      { 49, 50, 51 },
                      { 52, 53, 54 },
                      { 55, 56, 57 },
                      { 58, 59, 60 } };

    Random randomNumbers = new Random();

    for (int row = 0; row < array.length; row++ )
     {

         for (int column = 0; column < array[ row ].length; column++ )
         {
             int counter = 0;

             array[ counter ] = randomNumbers.nextInt() //Error here

             System.out.print( counter + "\t " + array[ counter ] + "\t");

             counter++;
         }

         System.out.println(" ");
     }

}
}
Run Code Online (Sandbox Code Playgroud)

Alb*_*nbo 7

您需要访问这两个索引.

array[ row ][ column ] = randomNumbers.nextInt(); //Error here
Run Code Online (Sandbox Code Playgroud)

这也可以写成

int[] oneRow = array[row];
int oneCell = oneRow[column];
Run Code Online (Sandbox Code Playgroud)

如果你把int[] oneRow = array[row];你的内循环放在上面你可以用内循环替换所有array[row]内循环oneRow.

此外,counter永远是0,每当您声明它时进入内循环,您将值重置为0.

您可能想要使用计数器,但将其放在内部循环之外.

int counter = 0;
for (int column = 0; column < array[ row ].length; column++ )
{
     array[ row ][ counter ] = randomNumbers.nextInt() //Error here
Run Code Online (Sandbox Code Playgroud)