Erreur java
bathna
-
bathna -
bathna -
Bonjour, qlq peut m'aider s'il vous plait
..
voici une methode que je veux l'executer.
mais il me donne l'erreur :
voici la ligne
comment je peux le resoudre
..
voici une methode que je veux l'executer.
public static void explore(int position, int depth) { int[][] matAdja= getMatriceAdjacente(); int[][] matAdja2 = new int[listeNoeuds.size()+1][listeNoeuds.size()+1] ; for(int k = 0 ; k <listeNoeuds.size(); k++) { for(int l = 0 ; l <listeNoeuds.size(); l++) { matAdja2[k][l]=matAdja [k+1][l+1]; } System.out.print ("\n");} for(int k = 0 ; k <listeNoeuds.size(); k++) { for(int l = 0 ; l <listeNoeuds.size(); l++) { System.out.print (matAdja2 [k][l]+ " "); } System.out.print ("\n");} path[depth]=position; // on est sur le sommet d'arrivé -> fini if (position==4) { // affiche la solution for(int i=0;i<=depth;i++) System.out.print(path[i]+" "); // ArrayList pathlist = new ArrayList<>(path[i]); // pathlist.add(path[i]); System.out.print("\n"); return; } // sinon... taboo[position]=true; // on pose un caillou // on explore les chemins restants for(int i=0;i<listeNoeuds.size()+1;i++) { if (matAdja2[position][i]==0 || taboo[i]) continue; explore(i,depth+1); } taboo[position]=false; // on retire le caillou }
mais il me donne l'erreur :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at modeleGraphe.Graphe.explore(Graphe.java:114).
voici la ligne
if (matAdja2[position][i]==0 || taboo[i])
comment je peux le resoudre
A voir également:
- Erreur java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
Bonjour,
De manière générale,
Vu ton code c'est difficile de savoir sur quel élément ça plante, car sur ta ligne il y a 3 accès tableaux, donc potentiellement les 3 peuvent être en cause.
Je commencerai par vérifier la taille de taboo dont tu ne nous as pas donné le code, mais dont tu as peut-être oublié de faire la taille "+1" de la même manière que matAdja2.
Remarque : si ça plante avec i=1 alors que tu fais un +1 sur i, ça veut dire ta listeNoeuds est vide...
De manière générale,
ArrayIndexOutOfBoundsException: 1, signifie que tu fais un tab[1] sur un tableau où l'indice 1 n'existe pas.
Vu ton code c'est difficile de savoir sur quel élément ça plante, car sur ta ligne il y a 3 accès tableaux, donc potentiellement les 3 peuvent être en cause.
Je commencerai par vérifier la taille de taboo dont tu ne nous as pas donné le code, mais dont tu as peut-être oublié de faire la taille "+1" de la même manière que matAdja2.
Remarque : si ça plante avec i=1 alors que tu fais un +1 sur i, ça veut dire ta listeNoeuds est vide...
.
mais ma liste des nœuds n'est pas vide, et j'ai déjà fixé la taille de taboo et path a nbre des noeuds +1 et plus que ça lorsque j'ai testé la methode ailleurs dans une classe independante ça marche tres bien donc je ne sais pas comment faire vraiment????
voici ce que me donner comme erreur:
matAdja2.length=6
position=0
tmp.length=6
i=0
n=0
taboo.length=1
i=0
b=true
matAdja2.length=6
position=0
tmp.length=6
i=1
n=1
taboo.length=1
i=1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at modeleGraphe.Graphe.explore(Graphe.java:125)
at testMonGraphe.TestMonGraphe.main(TestMonGraphe.java:36)
le pb resiste encore