Java.util.NoSuchElementException
Résolu
Amaurykas
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Amaurykas Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Amaurykas Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je me heurte à un problème qui dépasse ma compréhension de Java :
voici mon code :
avec le constructeur de Convertisseur :
et voici mon message d'erreur :
L'erreur semble donc se situer sur le constructeur, mais je ne comprends pas où.
Merci de m'éclairer de vos lumières, je vois vraiment pas quoi faire.
voici mon code :
System.out.println("ok1"); this.tPoisson = tPos.gettPositions(); System.out.println("ok2"); Convertisseur cConv1 = new Convertisseur(tPoisson,iNombreDePasDuTest); //il n'aime pas cette ligne?! WTF System.out.println("ok3");
avec le constructeur de Convertisseur :
public Convertisseur(int[][][] tPositions,int iPas) { super(); System.out.println("Okai test"); int[] tTemp = new int[2]; int i; int j; for (i = 0; i < iPas; i++) { for (j = 0; j < 10; j++) { tTemp[0] = tPositions[i][j][0]; tTemp[1] = tPositions[i][j][1]; if (tTemp[0] != -1) { lListePositionsDemandées.addLast(tTemp); } } } }
et voici mon message d'erreur :
ok1 ok2 Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException at java.util.LinkedList$ListItr.next(Unknown Source) at approchei.Approchei.setiCoutModificationListe(Approchei.java:111) at approchei.Approchei.settRésultats(Approchei.java:137) at principale.LaGrandeClasse.<init>(LaGrandeClasse.java:111) at interface_graph.BoiteDialogue.calcul(BoiteDialogue.java:912) at interface_graph.BoiteDialogue$2.actionPerformed(BoiteDialogue.java:138) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$400(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Okai test ok3
L'erreur semble donc se situer sur le constructeur, mais je ne comprends pas où.
Merci de m'éclairer de vos lumières, je vois vraiment pas quoi faire.
1 réponse
Il faut toujours regarder les premières lignes des exceptions, c'est là que l'on trouve les seules informations importantes pour trouver le bug :
D'après cette description tu as une méthode "setiCoutModificationListe" où tu utilises des Iterator. Or tu fais un "next" en trop, c'est à dire sur une liste où il n'y a plus rien après, d'où l'exception "NoSuchElementException".
Il faut que tu utilises la méthode "hasNext" avant de faire un "next" pour savoir à quel moment il n'y a plus d'élément pour t'arrêter. Tu peux aussi utiliser une boucle for each qui est plus simple à manipuler que les Iterator et qui suffit dans la plupart des cas.
java.util.NoSuchElementException at java.util.LinkedList$ListItr.next(Unknown Source) at approchei.Approchei.setiCoutModificationListe(Approchei.java:111) at approchei.Approchei.settRésultats(Approchei.java:137) at principale.LaGrandeClasse.<init>(LaGrandeClasse.java:111)
D'après cette description tu as une méthode "setiCoutModificationListe" où tu utilises des Iterator. Or tu fais un "next" en trop, c'est à dire sur une liste où il n'y a plus rien après, d'où l'exception "NoSuchElementException".
Il faut que tu utilises la méthode "hasNext" avant de faire un "next" pour savoir à quel moment il n'y a plus d'élément pour t'arrêter. Tu peux aussi utiliser une boucle for each qui est plus simple à manipuler que les Iterator et qui suffit dans la plupart des cas.
Amaurykas
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
Merci beaucoup, je t'aime très fort tu viens de me sortir de 3 heures d'enfer. Pour info, je faisais tourner deux itérateurs sur deux listes identique avec un while(premièreliste.hasNext()) j'ai simplement rajouté && secondeliste.hasNext() et ca tourne.