检查二维数组是否为空

时间:2014-09-23 02:08:10

标签: java arrays multidimensional-array

我正在开展一个课程项目并遇到障碍。我一直在寻找如何检查二维数组是否为空的所有地方,如果是,那么它将继续项目。如果阵列已满,那么它会要求客户列入等待名单。我是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] = '*';
    }   
}

2 个答案:

答案 0 :(得分:3)

根据你的问题判断,你想要收集一系列字符和:

  1. 如果至少有一个开放座位(*
  2. ,则输出true
  3. 如果没有&#t;
  4. ,则输出false

    您希望代码如下所示:

    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 :(得分:1)

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

您可以检查数组中的每个项目是否等于特殊值,这意味着&#34;空&#34;项目

最快的方法是逐项检查,然后返回false,如&#34; not-empty &#34;一找到座位就行了。如果我们检查了所有座位并且没有找到座位,那么矩阵就是空的。

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
}