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
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.
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()
)
Vous n'avez aucun élément dans la liste, vous ne pouvez donc pas accéder au premier élément.
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
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).
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++){
...}