Java проверяет, существует ли массив [] - программирование
Подтвердить что ты не робот

Java проверяет, существует ли массив []

Я загружаю некоторые данные в массив String. Скажем ImageLinks. Как проверить, существует ли элемент в массиве?

Я пытаюсь

if(ImageLinks[5] != null){}

но он дает мне ArrayIndexOutOfBoundsException. (Поскольку в массиве действительно нет 5 ссылок)

4b9b3361

Ответ 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 является истинным