2014-09-23 146 views
0

正在处理班级项目并碰到路障。我一直在寻找如何检查二维数组是否为空,如果是的话,它会继续与该项目。如果数组已满,则会要求客户被列入等待名单。我真的是新来的Java所以如果你可以请帮助我这个!我一直在考虑使用布尔语句,但我不知道这是否会起作用。任何情况下,我已经写了这个数组到目前为止。检查两维数组是否为空

char [][] seats = new char [13][6]; //array for row and columns 

for (int row = 0; row < seats.length; row ++) {//output seating to * with no passengers 
    for (int col = 0; col < seats[row].length; col ++) { 
     seats [row][col] = '*'; 
    } 

} 
+0

这是您需要帮助的代码吗? – 2014-09-23 02:12:08

+2

@Kerppag不起作用。 array.length给出了分配空间的长度,而不是实际存在的项目的数量 – nem035 2014-09-23 02:12:35

+0

好的好吧@nem我只是试过了,它失败了。我想2D数组应该手动检查? – 2014-09-23 02:15:32

回答

3

您的问题来看,要采取字符数组,并且:

  1. 输出true,如果有至少一个开放座位(*
  2. 输出错误,如果有不是。

你想要的代码看起来像这样:

public static boolean hasOpenSeat(char[][] seats){ 
    for(int i = 0; i < seats.length; i++){ 
     for(int j = 0; j < seats[i].length; j++){ 
      if(seats[i][j] == '*') 
       return true; 
     } 
    } 
    //Open seat was never found - return false 
    return false; 
} 
1

这取决于你的空定义...

你可以做一个检查,如果阵列中的每个项目相当于一个特殊值这意味着“空”的项目。

最快的方法是逐项检查,一旦找到空座位,就返回false,如“非空”。如果我们检查了所有座位并且未找到非空座位,那么矩阵是空的。

boolean areAllSeatsEmpty(char [][] seats) { 
    final char EMPTY_SEAT = '*'; 
    for (int row = 0; row < seats.length; row ++) { 
     for (int col = 0; col < seats[row].length; col ++) { 
      if(seats [row][col] != EMPTY_SEAT) { // return false as soon as a non-empty seat is found 
       return false; 
      } 
    } 
    return true; // no non-empty seats were found so all seats are empty 
}