我正在编写一个程序,我想通过列表理解来缩短代码(如Python中的代码)。但是,在尝试简化代码时遇到了语法错误:
我已尝试多次解决此问题,但是当我想以整数数组(int [])的形式完成此任务时,他们提出的所有解决方案都是通过ArrayLists。
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
有人可以帮忙吗?非常感谢。
答案 0 :(得分:1)
此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;
}