как проверить, если двумерный массив пуст - PullRequest
2 голосов
/ 26 февраля 2012

как я могу проверить, пуст ли этот двухдиментальный массив?

это мой код:

      String[][] user = new String[5][3];

        System.out.print(user.length);

            if (user.length == 5 ){
                System.out.print("\n empty");
            }

        for (int j=0; j<3; j++) {
            System.out.print(" " + user[0][j]+ "\n");
        }

и вывод:

5
 empty null null null

Кто-нибудь имеет представление о моей ситуации?

Ответы [ 2 ]

3 голосов
/ 26 февраля 2012

Я думаю, вы что-то неправильно понимаете в Java.Когда вы пишете:

String[][] user = new String[5][3];

user.length will always be 5 and 

user[0].length = user[1].length = ... = user[5].length = 3

Если вы хотите проверить, все ли значения в вашем массиве являются пустыми, вы можете сделать что-то вроде:

boolean notNull = false;
for(String[] array : user){
    for(String val : array){
      if(val!=null){
        notNull=true;
        break;
      }
    }
}
if(notNull){
  System.out.println("Array not empty)";
}else{
     System.out.println("Array empty");
}

Другим решением будет использование Arrays.deepEquals:

String[][] user = new String[5][3];
String[][] emptyReferenceForComparison= new String[5][3];
Arrays.deepEquals(user, emptyReferenceForComparison); // return true
1 голос
/ 26 февраля 2012

Я предлагаю использовать Apache Commons Lang3.В этой библиотеке есть утилита для работы с массивами.Название класса ArrayUtils.Для примера:

    String[][] user = new String[5][3];
    for(String[] nestedArray : user)
        if(ArrayUtils.isEmpty(nestedArray))
            System.out.println("Is empty");

Apache Commans Lang3 - хорошая утилита.см. здесь для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...