Как сделать понимание списка в Java - PullRequest
0 голосов
/ 04 июля 2019

Я пишу программу и хочу сократить код с помощью понимания списка (как в Python). Однако я столкнулся с синтаксическими ошибками при попытке упростить код:

Я пытался решить эту проблему несколько раз, но все решения, которые они предлагали, были через ArrayLists, а я хочу выполнить эту задачу в виде целочисленного массива (int []).

boolean[][] seats;
Theater(int row, int col) {
    for (int i=0; i<row; i++) for (int j=0; j<col; j++) seats[i][j] = false;
}

public int[] findSeats(int row) {
    int[] arr = [x for (boolean x : this.seats[row]) if (x == false)];
    return arr;
}

Я ожидал, что приведенный выше код будет работать, но вместо этого появились следующие сообщения:

Syntax error on tokens, delete these tokens
Syntax error on token "]", delete this token

Может кто-нибудь помочь, пожалуйста? Очень ценится.

1 Ответ

1 голос
/ 04 июля 2019

Эта языковая конструкция Python недоступна в Java. Я полагаю, вы находите вакантные места подряд? Ближе всего я думал, что-то вроде этого

public int[] findSeats(int row) {

        final int[] avSeats = new int[seats[row].length];
        IntStream.range(0, seats[row].length).filter(seatNo -> !seats[row][seatNo]).forEach(seatNo -> avSeats[seatNo] = 1);
        return avSeats;

    }
...