我想检测数组的子范围是否包含空引用。不知怎的,这样:
public static <T> boolean containsNull
(T[] array, int fromInclusive, int toExclusive)
{
for (int i = fromInclusive; i < toExclusive; ++i)
{
if (array[i] == null) return true;
}
return false;
}
在Java库中是否有这样的方法,所以我不必手动遍历数组?也许我被C ++对基于算法的代码的出色支持所破坏,我可以写一下:
#include <algorithm>
bool found_null = (std::find(array + from, array + to, 0) != array + to);
答案 0 :(得分:22)
检查Arrays.asList(myArray).contains(null)
。
要检查数组的一部分,请检查是否
Arrays.asList(myArray).subList(from, to).contains(null)
这不会创建不必要的数组副本; asList
和subList
创建包含原始数组的ArrayList
和RandomAccessSubList
对象,而不复制它。
答案 1 :(得分:3)
Apache commons-lang为您提供ArrayUtils.contains(array, null)
对于范围:ArrayUtils.contains(Arrays.copyOfRange(array, from, to), null)