Java проверяет, существует ли массив []
Я загружаю некоторые данные в массив String. Скажем ImageLinks
.
Как проверить, существует ли элемент в массиве?
Я пытаюсь
if(ImageLinks[5] != null){}
но он дает мне ArrayIndexOutOfBoundsException
. (Поскольку в массиве действительно нет 5 ссылок)
Ответы
Ответ 1
Чтобы предотвратить ArrayIndexOutOfBoundsException
, вы можете использовать следующее:
if(ImageLinks.length > 5 && ImageLinks[5] != null)
{
// do something
}
Поскольку инструкции в if
проверяются слева направо, вы не достигнете нулевой проверки, если массив не имеет нужного размера.
Это довольно легко обобщить для любого сценария.
Ответ 2
Убедитесь, что массив имеет такую длину, прежде чем выполнять поиск
if(ImageLinks.length > 5 && ImageLinks[5] != null){}
Ответ 3
Напишите статическую функцию
public static boolean isElementExists(String[] data, int index){
try{
data[index];
return true;
} catch(ArrayIndexOutOfBoundsException e){
return false;
}
}
Теперь дайте ему вызов в вашем коде
if(isElementExists(ImageLinks, 5)){
//Your Code
}
Ответ 4
да есть менее 6 элементов
ImageLinks [5] относится к 6-му элементу, поскольку индекс массива в java начинается с 0
Ответ 5
Причина в том, что массив имеет меньше элемента, чем 6.
вещь, которую вы должны проверить, сначала... если у нее есть много элементов.. если да, то только выполнить заданный код
int index =5;
if(ImageLinks.length>index )
{
if(ImageLinks[index]!=null)
{ //your code
}
}
Кто-то предложил следующий код
if(ImageLinks.length > 5 && ImageLinks[5] != null)
{
// do something
}
причина, почему вы не должны ее использовать...
ImageLink [5] по-прежнему вызывается, даже если размер массива меньше. но в том, что я дал... он только вызывается, если первый if-statement является истинным