Обнаружение нулевой ссылки в массиве
Я хочу определить, содержит ли поддиапазон массива нулевую ссылку. Как-то так:
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);
2 ответов
проверить, является ли Arrays.asList(myArray).contains(null)
.
чтобы проверить часть массива, проверьте, есть ли
Arrays.asList(myArray).subList(from, to).contains(null)
это не создаст ненужных копий массива; оба asList
и subList
создать ArrayList
и RandomAccessSubList
объекты, которые обертывают исходный массив без его копирования.
Apache commons-lang дает ArrayUtils.contains(array, null)
в ассортименте: ArrayUtils.contains(Arrays.copyOfRange(array, from, to), null)