Hvordan fikse Javas util -nosuchElementException

Hvordan fikse Javas util -nosuchElementException
I Java heves nosuchElementException når en iterable maksimale grense overskrides. Dette unntaket blir reist ved en rekke tilbehørsmetoder for oppregning, iterator eller tokenizer for å signalisere at det forespurte elementet ikke er til stede. NosuchElementException blir referert til som en ukontrollert forventning fordi den er avledet fra en RuntimeException. For å fikse dette unntaket, må du bekrefte at det underliggende objektet inneholder flere elementer før du implementerer tilbehørsmetodene som muligens genererer nosuchElementException. Det er noen metoder for å bestemme om et objekt har flere elementer enn det har i de spesifiserte grensesnittene som inkluderer disse tilbehørsmetodene.

Eksempel 1:

Der har vi forskjellige tilbehørsmetoder som kaster dette unntaket hvis det forespurte elementet ikke eksisterer. Hvis det ikke er flere elementer i iterasjonen, gir den neste () -metoden i Java NosuchElementException. Ellers returnerer det neste element som er plassert i iterasjonen. Vi har følgende eksempel der vi først definerer Java -klassen og implementerer programmet i Main () -metoden i klassen. Vi har "Strarray" variabel erklæring der arraylisten initialiseres. Vi legger bare til ett element i matriselisten som er en streng.

Deretter oppretter vi “Itrarr” -variabelen for iteratorklassen å iterere over elementene i den gitte arraylisten. "ITrarr" -variabelen kalles da "Strarry" sammen med Iterator () -metoden. Etter det skriver vi ut det neste elementet i "Strarray" ArrayList som skriver ut den gitte verdien av ArrayList. Neste () metode brukes for å oppnå det påfølgende elementet fra en arraylist. Videre skriver vi ut det neste elementet fra den forrige ArrayList som ikke eksisterer, da vi bare ga ett element til "Strarray" ArrayList.

Importer Java.util.*;
public class SampleProgram1
public static void main (String [] args)
ArrayListStraRray = new ArrayList ();
Strarray.Legg til (ny streng ("Java -eksempel"));
Iterator itrarr = strarray.iterator ();
System.ute.Println (itrarr.neste ());
System.ute.Println (itrarr.neste ());

Utførelsen av programmet løftet nosuchElementException. Det er funnet som vi vet at det ikke er noe slikt neste element for iterasjon etter at det gitte elementet er hentet.

Eksempel 2:

Det tidligere eksemplet er utstyrt med kildekoden som hevet nosuchElementException for iterasjonen av neste element gjennom neste () -metode. Nå brukes den neste () Accessor Method of Iterator -klassen i dette eksemplet for å prøve å få tilgang til et hashmap. Men siden Hashmap er tom, får vi en nosuchElementException. Først har vi den definerte Main () -metoden i Java -klassen der vi setter hashset -grensesnittet. Vi erklærer "MySet" -objektet i settklassen og tildeler hashset () som er tomt. Etter det har vi hashtable -objektet som er "mytable" der det tomme hashtable () er definert. Deretter bruker vi iteratoren med neste () metode. Iteratoren itererer over settet og gir deretter neste settverdi. Vi får også elementene fra hashtable () gjennom elementene () -metoden og det neste elementet for tabellen gjennom NextElement () -metoden. Vi får et nosuchElementexeception siden både hashset og hashtable er tomme.

Importer Java.util.Hashset;
Importer Java.util.Hashtable;
Importer Java.util.Sett;
public class SampleProgram2
public static void main (String [] args)
Sett MySet = new HashSet ();
HashtablemyTable = new HashTable ();
MySet.iterator ().neste ();
Mytable.elementer ().nextElement ();

Der får vi produksjonen som kaster nosuchElementExecption fordi vi prøver å få de tomme elementene som ikke er mulig.

Eksempel 3:

Nå har vi en løsning for å unngå unntaket "NosuchElementException". Vi må påkalle iteratoren som er hasnext () -metoden. HasNext () -metoden verifiserer hver gang når det er iterende under prosessen som et element er til stede i settet etterpå eller ikke. La oss begynne med HasNext () -metodeprogrammet. Vi erklærer først ArrayList -klassen “A” -variabel der ArrayList er definert med tomme verdier. Vi setter inn strengen etter opprettelsen av ArrayList fra Add () -metoden. Deretter påkaller vi "jeg" iteratorobjektet som kalles iterator () -metoden til arraylisten "a". Elementet som krysser med iteratoren () oppnås ved å bruke While Loop. Mens Loop har en tilstand som bruker HasNext () -metoden for å bekrefte eksistensen av det neste elementet fra den spesifiserte ArrayList. Når hasNext () gir den sanne indikasjonen, blir den neste () metoden som er distribuert i utskriftserklæringen utført.

Importer Java.util.*;
public class SampleProgram3
public static void main (String [] args)
ArrayList a = new ArrayList ();
en.Legg til (ny streng ("velkomstelever"));
Iterator i = a.iterator ();
mens jeg.hasnext ())
System.ute.Println (i.neste ());


NosucheelementException er ikke hevet fra det forrige programmet fordi HasNext () sjekker elementene etter og deretter neste () -metode gir elementet i ArrayList.

Eksempel 4:

Det er en annen løsning for unntaket at StringTokenizer Class Instance Technique HasMoretokens () undersøker tokenisatorens streng for å avgjøre om det er noen ekstra symboler. Vi setter "S" -objektet for strengtype og tildeler strengen der. Etter det har vi et "strtoken" -objekt der vi kaller Stringtokenizer -klassen og angir “S” strengobjekt og den hvite romverdien. Deretter har vi en stundsløyfe -iterasjon der vi distribuerer hasmoretoken for å håndtere "nosuchElementException". Deretter kaller vi NextToken () -metoden for å skrive ut strengen.

Importer Java.util.Stringtokenizer;
public class SampleProgram4
public static void main (String args [])
Streng S = "Java -program";
StringTokenizerStrtoken = new StringTokenizer (S, "");
mens (strtoken.hasMoretokens ())
System.ute.Println (Strtoken.nextToken ());


Det er ikke noe unntak hevet ettersom metoden HasNextToken () utføres for å håndtere unntaket. NEXTTOKEN representerer strengverdiene til slutten.

Eksempel 5:

Den forrige () -metoden til ListIterator returnerer samlingens foregående element. En nosuchElementException kastes ved kjøretid hvis metoden brukes på et tomt element eller på varens startsted. Vi lager den tomme arraylisten av en streng i "StringList" -variabelen. Etter det legger vi noen strenger på listen. ListIterator () er kalt for iterasjonsprosedyren på ArrayList. Neste, vi bruker mens sløyfen to ganger i programmet. Først bestemmer mens sløyfen bestemmer elementet etter gjennom HasNext () metodeformen som kan få neste element ved å kalle hasNext () -metoden etter det. Den andre mens Loop bruker Hasprevious () -metoden på iteratorverdiene for å få den forrige verdien fra ArrayList. Begge disse metodene håndterer unntaket ved å verifisere neste og tidligere verdier.

Importer Java.util.ArrayList;
Importer Java.util.Listiterator;
public class SampleProgram5
public static void main (String args [])
ArrayListStringList = new ArrayList ();
Stringlist.Legg til ("Java");
Stringlist.Legg til ("Ruby");
Stringlist.Legg til ("Scala");
ListIteratorItr = StringList.listIterator ();
mens (itr.hasnext ())
itr.neste ();

mens (itr.hasprevious ())
System.ute.Println (ITR.tidligere());


Den første får de neste verdiene til ArrayList fra å undersøke gjennom HasNext () -metoden. Deretter får vi den forrige verdien av ArrayList i utdataene fra Hasprevious () -metoden. NosuchElementException blir også håndtert der.

Eksempel 6:

Den neste enkle løsningen er HasMoreelements () -metoden for oppregning som bør brukes til å bestemme om denne oppregningen inneholder flere elementer. Oppregning returnerer sant hvis den har flere elementer. Ellers returnerer det falskt. Vi genererer den tomme vektorsamlingen i "Vect" vektorobjekt som er lagt til med den numeriske verdien. Etter det spesifiserer vi “E” -opp tellerobjektet for å få elementene fra elementet () -metoden. Deretter distribuerer vi HasMoreEelements -metoden () i gang () tilstand for å sjekke om flere elementer er gitt av oppregningen Vektorene eller ikke.

Importer Java.util.Oppregning;
Importer Java.util.Vektor;
public class SampleProgram6
public static void main (String args [])
VectorVect = ny vektor ();
Vekt.Legg til (8934);
Vekt.Legg til (6127);
Oppregning E = VECT.elementer ();
mens (e.hasMoreelements ())
System.ute.println (e.nextElement ());


Vektorsamlingen av alle elementer vises på følgende skjermbilde. HasMoreElement () håndterer unntaket ved å identifisere de videre elementene.

Konklusjon

NosuchElementException blir løst ved å avgjøre om en iterables neste sted er fylt eller tom. Vi viste hvordan denne feilen reises mens vi bruker den iterable metoden på den tomme samlingen og det neste elementet fra samlingen. Vi må plassere sjekken før vi itererer den over elementene for å bli kvitt det unntaket. Vi ga flere metoder for å løse dette unntaket mens vi utførte programmet.