我有int没有元素的数组,我试图检查它是否为空.
例如,为什么下面代码中的if语句永远不会成立?
int[] k = new int[3];
if(k==null)
{
System.out.println(k.length);
}
Run Code Online (Sandbox Code Playgroud)
cle*_*tus 191
null数组和空数组之间存在关键区别.这是一个测试null.
int arr[] = null;
if (arr == null) {
System.out.println("array is null");
}
Run Code Online (Sandbox Code Playgroud)
这里的"空"没有官方意义.我选择将empty定义为具有0个元素:
arr = new int[0];
if (arr.length == 0) {
System.out.println("array is empty");
}
Run Code Online (Sandbox Code Playgroud)
"空"的另一种定义是,如果所有元素都是null:
Object arr[] = new Object[10];
boolean empty = true;
for (int i=0; i<arr.length; i++) {
if (arr[i] != null) {
empty = false;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
要么
Object arr[] = new Object[10];
boolean empty = true;
for (Object ob : arr) {
if (ob != null) {
empty = false;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
Mik*_*ike 17
看看它的长度:
int[] i = ...;
if (i.length == 0) { } // no elements in the array
Run Code Online (Sandbox Code Playgroud)
虽然同时检查null更安全:
if (i == null || i.length == 0) { }
Run Code Online (Sandbox Code Playgroud)
Jac*_*bec 14
org.apache.commons.lang 上也存在检查数组是否为空或空的方法:
import org.apache.commons.lang.ArrayUtils;
ArrayUtils.isEmpty(array);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
543591 次 |
| 最近记录: |