Comment réparer Util NosuchementElementException de Java

Comment réparer Util NosuchementElementException de Java
En Java, la NosuchementElementException est augmentée lorsque la limite maximale d'un itérable est dépassée. Cette exception est soulevée par une variété de méthodes d'accessoires d'énumération, d'itérateur ou de tokenizer pour signaler que l'élément demandé n'est pas présent. La NosuchementElementException est appelée une attente incontrôlée car elle est dérivée d'une RuntimeException. Pour corriger cette exception, vérifiez que l'objet sous-jacent contient plus d'éléments avant d'implémenter les méthodes d'accessoire qui génèrent éventuellement la NosuchementElementException. Il existe certaines méthodes pour déterminer si un objet a plus d'éléments que dans les interfaces spécifiées qui incluent ces méthodes d'accessoires.

Exemple 1:

Là, nous avons différentes méthodes d'accessoires qui lancent cette exception si l'élément demandé n'existe pas. S'il n'y a plus d'éléments dans l'itération, la méthode suivante () en Java donne à NosuchementElementException. Sinon, il renvoie l'élément suivant qui est placé dans l'itération. Nous avons l'exemple suivant où nous définissons d'abord la classe Java et mettons en œuvre le programme dans la méthode principale () de la classe. Nous avons la déclaration variable «StraRray» où la liste Array est initialisée. Nous ajoutons un seul élément à la liste des tableaux qui est une chaîne.

Ensuite, nous créons la variable «Itrarr» pour la classe Iterator pour itérer les éléments de la liste Array donnée. La variable «Itrarr» est alors appelée «Starry» avec la méthode Iterator (). Après cela, nous imprimons l'élément suivant de la liste ArrayList «StraRray» qui imprime la valeur donnée de la liste Array. La méthode suivante () est utilisée pour obtenir l'élément successif à partir d'une liste Array. De plus, nous imprimons le prochain élément de la playlist précédente qui n'existe pas car nous n'avons fourni qu'un seul élément à la liste Array «StraRray».

Importer Java.user.*
classe publique SampleProgram1
public static void main (String [] args)
ArrayListTrArray = new ArrayList ();
Mettre un coup.Add (new String ("Java Exemple"));
Iterator itrarr = starray.iterator ();
Système.dehors.println (itrarr.suivant());
Système.dehors.println (itrarr.suivant());

L'exécution du programme a augmenté la NosuchementElementException. Il se trouve comme nous savons qu'il n'y a pas un tel élément suivant pour l'itération après que l'élément donné est récupéré.

Exemple 2:

L'exemple précédent est fourni avec le code source qui a soulevé la NosuchementElementException pour l'itération de l'élément suivant à travers la méthode suivante (). Maintenant, la méthode d'accessoire suivant () de la classe Iterator est utilisée dans cet exemple pour tenter d'accéder à un hashmap. Mais comme le Hashmap est vide, nous recevons une norme NosuchementException. Tout d'abord, nous avons la méthode Main () définie de la classe Java où nous définissons l'interface HashSet. Nous déclarons l'objet «MySet» de la classe définie et attribuons le hashset () qui est vide. Après cela, nous avons l'objet de hashtable qui est «mytable» où le hashTable vide est défini. Ensuite, nous utilisons l'itérateur avec la méthode suivante (). L'ITERATOR ITERATE SUR LE SET, puis donne la valeur définie suivante. Nous obtenons également les éléments de la méthode hashTable () via la méthode Elements () et l'élément suivant pour la table via la méthode NextElement (). Nous obtenons une NosuchementElementExeceception puisque le hashset et le hashtable sont vides.

Importer Java.user.Hashset;
Importer Java.user.Hashtable;
Importer Java.user.Ensemble;
classe publique SampleProgram2
public static void main (String [] args)
Définissez MySet = new HashSet ();
HashTableMyTable = new HashTable ();
Myset.iterator ().suivant();
Ma table.éléments().nextElement ();

Là, nous obtenons la sortie qui lance la NosuchementElementExection parce que nous essayons d'obtenir les éléments vides qui ne sont pas possibles.

Exemple 3:

Maintenant, nous avons une solution pour éviter l'exception «NosuchementExexception». Nous devons invoquer l'itérateur qui est la méthode Hasnext (). La méthode Hasnext () vérifie chaque fois lorsqu'il itère pendant le processus qu'un élément est présent dans l'ensemble par la suite ou non. Commençons par le programme de méthode Hasnext (). Nous déclarons d'abord la variable de classe ArrayList «A» où le ArrayList est défini avec des valeurs vides. Nous insérons la chaîne après la création de l'arrayList à partir de la méthode Add (). Ensuite, nous invoquons l'objet itérateur «i» qui est appelé la méthode Iterator () de la liste Array «A». L'élément qui traverse l'itérateur () est accompli en utilisant la boucle while. La boucle while a une condition qui utilise la méthode Hasnext () pour vérifier l'existence de l'élément suivant de la liste Array spécifiée. Lorsque le Hasnext () donne la véritable indication, la méthode suivante () qui est déployée dans l'instruction PRINT est exécutée.

Importer Java.user.*
classe publique SampleProgram3
public static void main (String [] args)
ArrayList a = new ArrayList ();
un.Add (new String ("Welcome Apprenders"));
Itérateur i = a.iterator ();
alors que je.Hasnext ())
Système.dehors.println (i.suivant());


La conception NosucheelementExt n'est pas relevée du programme précédent car le Hasnext () vérifie les éléments après, puis la méthode suivante () fournit l'élément de la liste Array.

Exemple 4:

Il existe une autre solution pour l'exception que la technique d'instance de classe StringTokenzer Hasmoretokens () examine la chaîne du tokenzer pour déterminer s'il y a des jetons supplémentaires. Nous définissons l'objet «S» du type de chaîne et assignons la chaîne là-bas. Après cela, nous avons un objet «strtoken» où nous appelons la classe StringTokenizer et définissons l'objet de chaîne «S» et la valeur d'espace blanc. Ensuite, nous avons une itération de boucle de temps où nous déployons le HasmoreToken pour gérer la «NosuchelementException». Ensuite, nous appelons la méthode NextToken () pour imprimer la chaîne.

Importer Java.user.StringTokenizer;
classe publique SampleProgram4
public static void main (String args [])
String s = "programme Java";
StringTokenizersTrtoken = new StringTokenizer (S, "");
Pendant que (strtoken.hasmoretokens ())
Système.dehors.println (strtoken.NextToken ());


Il n'y a aucune exception soulevée car la méthode HasnextOken () est effectuée pour gérer l'exception. Le prochain représente les valeurs de chaîne jusqu'à la fin.

Exemple 5:

La méthode précédente () du listerator renvoie l'élément précédent de la collection. Un NosuchementElementException est lancé au moment de l'exécution si la méthode est utilisée sur un article vide ou à l'emplacement de départ de l'article. Nous créons la plateList vide d'une chaîne dans la variable «StringList». Après cela, nous ajoutons quelques chaînes à la liste. Le listIterator () est appelé pour la procédure d'itération sur l'arraylist. Ensuite, nous utilisons la boucle while deux fois dans le programme. Tout d'abord, la boucle while détermine l'élément après le formulaire de méthode Hasnext () qui peut obtenir l'élément suivant en appelant la méthode Hasnext () après cela. La deuxième boucle while utilise la méthode hasprevious () sur les valeurs d'itérateur pour obtenir la valeur précédente de l'arrayList. Ces deux méthodes gèrent l'exception en vérifiant les valeurs suivantes et précédentes.

Importer Java.user.Liste des tableaux;
Importer Java.user.ListIterator;
classe publique SampleProgram5
public static void main (String args [])
ArrayListStringList = new ArrayList ();
Stringlist.ajouter ("java");
Stringlist.ajouter ("rubis");
Stringlist.ajouter ("scala");
ListIteratoriTtr = stringlist.listIterator ();
tandis que (iTr.Hasnext ())
itr.suivant();

tandis que (iTr.Hasprevious ())
Système.dehors.println (iTr.précédent());


Le premier obtient les valeurs suivantes de l'arrayList de l'examen via la méthode Hasnext (). Ensuite, nous obtenons la valeur précédente de l'arrayList dans la sortie de la méthode Hasprevious (). La conception NosuchementElement est également gérée là-bas.

Exemple 6:

La solution simple suivante est la méthode d'énumération HasmoreElements () qui doit être utilisée pour déterminer si cette énumération contient des éléments supplémentaires. L'énumération revient vrai s'il a plus d'éléments. Sinon, il renvoie faux. Nous générons la collection Vide Vectors dans l'objet vectoriel «vect» qui est ajouté avec la valeur numérique. Après cela, nous spécifions l'objet d'énumération «E» pour obtenir les éléments de sa méthode élément (). Ensuite, nous déployons la méthode HasmoreElements () dans la condition while () pour vérifier si davantage d'éléments sont fournis par les vecteurs d'énumération ou non.

Importer Java.user.Énumération;
Importer Java.user.Vecteur;
classe publique SampleProgram6
public static void main (String args [])
Vectorvect = new vector ();
vecter.ajouter (8934);
vecter.Add (6127);
Énumération e = vect.éléments();
Pendant que (e.HasmoreElements ())
Système.dehors.println (e.nextElement ());


La collection vectorielle de tous les éléments s'affiche sur l'écran suivant. Le HasmoreElement () gère l'exception en identifiant les autres éléments.

Conclusion

Le NosuchementElementException est résolu en déterminant si le prochain emplacement d'un iTable est rempli ou vide. Nous avons montré comment cette erreur est augmentée lors de l'utilisation de la méthode itérable sur la collection vide et de l'élément suivant de la collection. Nous devons placer le chèque avant de l'itéralement sur les éléments pour nous débarrasser de cette exception. Nous avons fourni plusieurs méthodes pour résoudre cette exception lors de l'exécution du programme.