Есть какой-нибудь красивый способ получения индекса первого not null элемента массива? Да, можно написать
int index;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != null) {
index = i;
break;
}
}
но, может, есть какой-нибудь более красивый способ для этого? Например, для получения первого not null элемента массива есть метод ObjectUtils.firstNonNull, может, есть что-то похожее и для получения индекса?
Ответ
Можно написать цикл чуть короче:
int index = 0;
while (index < arr.length && arr[index] == null)
++index;
Или даже:
int index = -1;
while (++index < arr.length && arr[index] == null) {}
Или вот вариант с for (спасибо @Qwertiy!):
int index;
for (index = 0; index < arr.length && arr[index] == null; ++index);
Также можно написать свой метод для этого, использующий любой из способов выше, либо вот так (Ideone):
static
// или `return -1`
return arr.length;
}
Комментариев нет:
Отправить комментарий