2016-01-18 2 views
6

Я хотел знать, действителен ли этот код для проверки того, пуст ли массив, или я должен проверить значение null?Как проверить пустой массив java

if(arrayName={}) 
    System.out.println("array empty"); 
else System.out.println("array not empty"); 

Спасибо!

+4

Это зависит от того, что вы имеете в виду __empty__. – Nabin

+0

* «Я хотел знать, действительно ли этот код действителен для проверки, является ли массив пустым» * - код, который вы отправили, даже не компилируется.В будущем, вероятно, быстрее просто попытаться скомпилировать ваш код **, а не просить людей в Интернете смотреть на него. – DaoWen

ответ

5

В классе массива мы имеем статическую переменную, определенную «длина», которая содержит элементы numberof в объекте массива. Вы можете использовать это, чтобы найти длину, как:

if(arrayName.length == 0) 
    System.out.println("array empty"); 
else 
    System.out.println("array not empty"); 
0

Нет, потому что литералы массивов не работают таким образом. Замените arrayName={} на arrayName.length==0, и он должен работать.

0

Чтобы проверить пустой попробовать, как это:

if (arr.length == 0) { 
System.out.println("array is empty"); 
} 
+0

Это дубликат другого ответа. – ostrichofevil

0

Как poited в других ответах, то length свойства Array даст длину массива. Но всегда рекомендуется проверять, является ли массив null перед выполнением какой-либо операции над ним, иначе он будет выкидывать NullPointerException, если массив равен null. Ответ

 if (array != null) { 
      if (array.length == 0) 
       System.out.println("Empty Array Size=0"); 
      else 
       System.out.println("Array Not Empty - Size = " + array.length); 

     } else 
      System.out.println("array is null"); 
    } 
0

proudandhonour находится на правильном пути, но не будет работать для всех возможных значений arrayName, в частности, тот случай, в котором arrayName не была определена и null. В этом случае код:

if(arrayName.length == 0) 
    System.out.println("array empty"); 
else 
    System.out.println("array not empty"); 

проваливается с ответом на NullPointerException. TimeTravel в правильно тестирует для этого случая и корректно обрабатывает все возможные значения для arrayName. Единственным недостатком является то, что его код более подробный, чем он должен быть.

Java обеспечивает Оценка короткого замыкания Булевы выражения. В частности, результат равен false для всех возможных значений xx. Поэтому при оценке первого операнда логического оператора && JVM будет игнорировать второй операнд, если 1-й результат оценивается как false.

Эксплуатируя это, мы можем написать:

if (arrayName != null && arrayName.length > 0) 
    { System.out.println("The array length > 0"); } 
else 
    { System.out.println("The array is null or empty"); } 

Существует также троичного оператор который обеспечивает механизм для встраивания если-то-иначе выражения. Это может улучшить читаемость в некоторых обстоятельствах:

System.out.println((arrayName == null) 
    ? "The arrayName variable is null" 
    : (arrayName.length < 1) 
     ? "The array length is zero" 
     : "The array length is " + String.valueOf(arrayName.length) 
); 
4

Я бы рассмотреть вопрос об использовании ArrayUtils.is порожних путем добавления Apache Commons Lang здесь http://commons.apache.org/proper/commons-lang/download_lang.cgi

Большим преимуществом является то это будет обнулить проверить массив для вас в чистом и легко читаемым способом.

Вы можете сделать:

if (ArrayUtils.isEmpty(arrayName) { 
    System.out.printLn("Array empty"); 
} else { 
    System.out.printLn("Array not empty"); 
} 
Смежные вопросы