Определить нулевую ссылку в массиве - PullRequest
6 голосов
/ 19 января 2011

Я хочу определить, содержит ли поддиапазон массива нулевую ссылку. Как-то так:

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 ]

22 голосов
/ 19 января 2011

Проверьте, есть ли Arrays.asList(myArray).contains(null).

Чтобы проверить часть массива, проверьте, является ли

Arrays.asList(myArray).subList(from, to).contains(null)

Это не создаст ненужных копий массива; asList и subList создают ArrayList и RandomAccessSubList объекты, которые оборачивают исходный массив без его копирования.

4 голосов
/ 19 января 2011

Apache commons-lang дает вам ArrayUtils.contains(array, null)

Для диапазона: ArrayUtils.contains(Arrays.copyOfRange(array, from, to), null)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...