2013-07-25 3 views
1

Я работаю над проектом и получаю эту ошибку "java.lang.ArrayIndexOutOfBoundsException: 2> = 0" У меня проблема, связанная с этим, я знаю, что это ArrayIndexOutOfBoundsException : P, но принимая взглянуть на этот образец, например,java.lang.ArrayIndexOutOfBoundsException: 2> = 0

import java.awt.List; 
import java.util.ArrayList; 


public class Oube { 
    public static void main(String[] args) { 

     ArrayList<String> list = new ArrayList<String>(); 

     list.add("Hello"); 
     list.add("World"); 
     list.add("World"); 

     System.out.println(list.size()); 
     System.out.println(list.get(0)); 
     System.out.println(list.get(1)); 
     System.out.println(list.get(2)); 
     System.out.println(list.get(3)); 
     System.out.println(list.get(4)); 
     System.out.println(list.get(5)); 
     System.out.println(list.get(6)); 
    } 
} 

мы получаем следующее сообщение об ошибке, исключение в потоке "основной" java.lang.IndexOutOfBoundsException: Индекс: 3, размер: 3

Здесь дон Ничего подобного, x < = y

и в моем коде i amg etting 2> = 0 ошибка после ArrayIndexOutOfBoundsException Так моя проблема в том, что, когда мы получим такие 2> = 0, как ошибки?

+2

Что означает list.get (3)? –

ответ

1

Вы не видите Erorr в виде

java.lang.IndexOutOfBoundsException: Индекс: 3, размер: 3

Здесь мы не видим ничего подобного, х = у <

потому что Arraylist - это динамичная коллекция, которая растет по мере необходимости. Вы получаете указанное исключение, когда имеете дело с массивом фиксированного размера.

все эти заявления будут бросать исключение, потому что ArrayList не на желаемом индекс элементов:

 System.out.println(list.get(3)); 
    System.out.println(list.get(4)); 
    System.out.println(list.get(5)); 
    System.out.println(list.get(6)); 
2

Вы добавили три пункта в списке, таким образом размер будет но зато индекс понравится этот 0,1,2 прямо сейчас вы хотите получить list.get(3) и т. д., тогда он будет выбрасывать исключение, размер и последний элемент в позиции . Хотя, если вы увидите, что ваш код

System.out.println(list.get(3)); 
System.out.println(list.get(4)); 
System.out.println(list.get(5)); 
System.out.println(list.get(6)); 

Вы собираетесь получить доступ к этим элементам, которые не присутствует в списке, так что это исключение при попытке доступа элемент массива, который не существует:

0

Все обращения к массиву проверяются во время выполнения; попытка использовать индекс, который меньше нуля или больше или равен длине массива, вызывает выброс ArrayIndexOutOfBoundsException.

Вы убедитесь, что вы индексы находятся в диапазоне [0...yourArray.length-1].

, чтобы вы могли получить доступ к 0,1,2

3

Вы создаете объект Arraylist, размер которого является динамическим

ArrayList<String> list = new ArrayList<String>(); 

В то время как вы только добавили 3 элемента

list.add("Hello"); 
list.add("World"); 
list.add("World"); 

Это создает ArrayList размером 3 с индексом от 0 до 2.При звонке из индекса больше 2, как у вас есть

System.out.println(list.get(3)); 
System.out.println(list.get(4)); 
System.out.println(list.get(5)); 
System.out.println(list.get(6)); 

вы получите ArrayIndexOutOfBoundsException, потому что вы вызываете элементы которых индекс не существует в ArrayList или индекс находится вне грани ArrayList.

Смежные вопросы