comment réparer java.lang.IndexOutOfBoundsException


Exception dans le thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Taille: 0 à java.util.Liste de tableaux.rangeCheck(ArrayList.java: 604)

Dans la ligne de arraylist.java

private void rangeCheck(int index) {
    if (index >= size)
        throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
}

Dans la ligne

List lstpp = getResult(pp) ;
    System.out.println("=====Persegi Panjang====");
    System.out.println("luas = "+((Integer)lstpp.get(0)));

Veuillez aider

Author: JRE, 2013-09-16

6 answers

Vous voulez obtenir un élément d'un tableau vide. C'est pourquoi le Size: 0 de l'exception

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

Donc vous ne pouvez pas faire lstpp.get(0) jusqu'à ce que vous remplissiez le tableau.

 6
Author: DavidM, 2013-09-16 08:48:48

lstpp est vide. Vous ne pouvez pas accéder au premier élément d'une liste vide.

En général, vous pouvez vérifier si size > index.

Dans votre cas, vous devez vérifier si lstpp est vide. (vous pouvez utiliser !lstpp.isEmpty())

 4
Author: BobTheBuilder, 2013-09-16 08:45:54

Vous n'avez aucun élément dans la liste, vous ne pouvez donc pas accéder au premier élément.

 2
Author: Prasad Kharkar, 2016-08-27 18:10:42

Vous essayez d'accéder au premier élément de lstpp.get(0) d'un tableau vide. Ajoutez simplement un élément à votre tableau et vérifiez !lstpp.isEmpty() avant d'accéder à un élément

 0
Author: phoenix7360, 2013-09-16 08:46:29

Cette erreur se produit car votre liste lstpp est vide (Rien à l'index 0). Donc, soit il y a un bogue dans votre fonction getResult(), soit la liste vide est normale et vous devez gérer ce cas (en vérifiant la taille de la liste avant, ou en attrapant l'exception).

 0
Author: Kaidjin, 2013-09-16 08:48:46
for ( int i=0 ; i<=list.size() ; i++){
....}

En exécutant ceci pour la boucle , la boucle s'exécutera avec une exception levée comme IndexOutOfBoundException cause, supposons que la taille de la liste soit 10 , donc quand index je vais arriver à 10 c'est-à-dire quand i=10 l'exception sera levée cause index=size, c'est-à-dire i=size et comme on sait que Java considère..etc l'expression sur laquelle Java accepte est index < size. Donc, la solution pour une telle exception est de faire l'instruction en boucle comme i<list.size()

for ( int i=0 ; i<list.size() ; i++){
...}
 0
Author: Ranjeet, 2016-07-07 10:09:01