2014-09-23 3 views
0

Im работает над проектом класса и попадает в дорожный блок. Я искал всюду о том, как проверить, является ли двумерный массив пустым, и если да, то он продолжит работу над проектом. Если массив заполнен, он попросит, чтобы клиент был помещен в список ожидания. Я действительно новичок в 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

Этот код Вам нужен? –

+2

@ Kerppag, который не будет работать. array.length дает длину выделенного пространства, а не количество элементов, которые действительно присутствуют. – nem035

+0

ok ok @nem Я просто попробовал, и он терпит неудачу. Я предполагаю, что 2d-массив должен быть проверен вручную? –

ответ

3

Судя по вашему вопросу, вы хотите взять в массив символов и либо:

  1. Выход верно, если есть по крайней мере одно открытое место (*)
  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 
} 
Смежные вопросы