Я начинаю изучать язык программирования Java и пытаюсь решить поставленную задачу

Я пытаюсь закончить метод подсчета вхождений в массиве 2d и вывода результата в 1d

public static int[] histogram(int[][] a, int high) {
    // Please write your code after this line
    // init new array 
    int numOfRows = a.length;
    int numOfCols = a[0].length;
    int[] retVal = {};
    //main loop
    for (int o = 0; o < high; o++){
        //System.out.println(o);
        // go trough rows 
        for(int row = 0; row < numOfRows; row++ ){
            // check for colum values
            int count = 0;
            for(int col = 0; col < numOfCols; col++ ){

                if(a[row][col] = o ){
                    count++;
                }

            }
            retVal[o] = count; // Fixed typo 

        }


    }


    return retVal;
}

Это мой метод

Я использую BlueJ IDE для компиляции, и при компиляции я получаю ошибку «Несовместимые типы» для этой строки

Если (a [строка] [столбец] = o)

Я не понимаю, почему я получаю ошибку, на мой взгляд, [row] [col] имеет тип int? и o тоже тип int.

Благодарность

0
Sile Cetoy 15 Мар 2016 в 23:07

2 ответа

Лучший ответ
if(a[row][col] = o ) // Assignment Operator

Должно быть

if(a[row][col] == o ) // Equality evaluator

Операторы JavaDoc

0
Yassin Hajaj 15 Мар 2016 в 20:08
if(a[row][col] = o )

Используйте оператор == для проверки равенства, поэтому, наконец, он должен быть

if(a[row][col] == o )
1
Rishi 15 Мар 2016 в 20:09