我正在查看我的旧Android应用程序的代码,我看到我做了一件事:
boolean emptyArray = true;
for (int i = 0; i < array.size(); i++)
{
if (array.get(i) != null)
{
emptyArray = false;
break;
}
}
if (emptyArray == true)
{
return true;
}
return false;
Run Code Online (Sandbox Code Playgroud)
必须有一种更有效的方法 - 但它是什么?
emptyArray被定义为整数的ArrayList,它插入随机数的空值(稍后在代码中,实际的整数值).
谢谢!
Boh*_*ian 22
好吧,你可以为初学者使用更少的代码:
public boolean isAllNulls(Iterable<?> array) {
for (Object element : array)
if (element != null) return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,您还可以传递更多种类的集合.
Java 8更新:
public static boolean isAllNulls(Iterable<?> array) {
return StreamSupport.stream(array.spliterator(), true).allMatch(o -> o == null);
}
Run Code Online (Sandbox Code Playgroud)
没有更有效的方法.唯一能做的就是以更优雅的方式写出来:
List<Something> l;
boolean nonNullElemExist= false;
for (Something s: l) {
if (s != null) {
nonNullElemExist = true;
break;
}
}
// use of nonNullElemExist;
Run Code Online (Sandbox Code Playgroud)
实际上,它可能更有效,因为它使用Iterator和Hotspot编译器有更多的信息来优化使用size()和get().
| 归档时间: |
|
| 查看次数: |
28296 次 |
| 最近记录: |