So beheben Sie Javas NoSuchelementException

So beheben Sie Javas NoSuchelementException
In Java wird die NoSuchelementException angehoben, wenn die maximale Grenze eines Iterablens überschritten wird. Diese Ausnahme wird durch eine Vielzahl von Accessor -Methoden der Aufzählung, Iterator oder Tokenizer angehoben, um zu signalisieren, dass das angeforderte Element nicht vorhanden ist. Die NoSuchelementException wird als ungeprüfte Erwartung bezeichnet. Um diese Ausnahme zu beheben, stellen Sie sicher, dass das zugrunde liegende Objekt mehr Elemente enthält, bevor die Accessor -Methoden implementiert werden, die möglicherweise die NoSuchelementException generieren. Es gibt einige Methoden, um festzustellen, ob ein Objekt über mehr Elemente verfügt als in den angegebenen Schnittstellen, die diese Accessor -Methoden enthalten.

Beispiel 1:

Dort haben wir verschiedene Accessor -Methoden, die diese Ausnahme auswerfen, wenn das angeforderte Element nicht vorhanden ist. Wenn es keine Elemente in der Iteration mehr gibt, gibt die nächste () -Methode in Java NoSuchelementException. Ansonsten gibt es das nächste Element zurück, das in der Iteration platziert ist. Wir haben das folgende Beispiel, in dem wir die Java -Klasse zuerst definieren und das Programm innerhalb der Main () -Methode der Klasse implementieren. Wir haben die Variablenklaration „Strarrray“, bei der die ArrayList initialisiert wird. Wir fügen der Array -Liste nur ein Element hinzu, bei dem es sich um eine Zeichenfolge handelt.

Als Nächst. Die "iTrarr" -Variable wird dann zusammen mit der Iterator () -Methode als "Strohr" bezeichnet. Danach drucken wir das nächste Element der "Strarrray" -ArrayList, das den angegebenen Wert der ArrayList druckt. Die nächste () Methode wird verwendet, um das aufeinanderfolgende Element von einer ArrayList zu erhalten. Darüber hinaus drucken wir das nächste Element aus der vorherigen ArrayList, das nicht existiert, da wir nur ein Element für die "Strarrray" -Arrayliste bereitgestellt haben.

Java importieren.Util.*;
public class samprogram1
public static void main (String [] args)
ArrayListStraRray = new ArrayList ();
Strarrray.add (neuer String ("Java -Beispiel"));
Iterator itrarr = Strarrray.Iterator ();
System.aus.println (itrarr.nächste());
System.aus.println (itrarr.nächste());

Die Ausführung des Programms erhöhte die NoSuchelementException. Es ist wie wir wissen, dass es kein solches nächstes Element für die Iteration gibt, nachdem das angegebene Element abgerufen wurde.

Beispiel 2:

Das vorherige Beispiel wird mit dem Quellcode bereitgestellt, der die NoSuchelementException für die Iteration des nächsten Elements durch die nächste () Methode erhöht hat. In diesem Beispiel wird nun die nächste () Accessor -Methode der Iteratorklasse verwendet, um zu versuchen, auf einen HashMap zuzugreifen. Aber da die Hashmap leer ist, erhalten wir eine NoSuchelementException. Erstens haben wir die definierte Main () -Methode der Java -Klasse, in der wir die Hashset -Schnittstelle festlegen. Wir deklarieren das "MySet" -Ojekt der festgelegten Klasse und weisen den leeren Hashset () zu. Danach haben wir das Hashtable -Objekt, das „mytabel“ ist, in dem der leere Hashtable () definiert ist. Dann verwenden wir den Iterator mit der nächsten () Methode. Der Iterator iteriert über den Satz und gibt dann den nächsten Satzwert an. Wir erhalten auch die Elemente aus der Methode von Hashtable () über die Elements () -Methode und das nächste Element für die Tabelle durch die NextElement () -Methode. Wir erhalten eine NoSuchelementexecception, da sowohl das Hashset als auch die Hashtable leer sind.

Java importieren.Util.Hashset;
Java importieren.Util.Hash-tabelle;
Java importieren.Util.Satz;
public class samprogram2
public static void main (String [] args)
MySet = new Hashset () setzen;
Hashtablemytable = new Hashtable ();
MySet.Iterator ().nächste();
Mein Tisch.Elemente ().NextElement ();

Dort erhalten wir die Ausgabe, die die NoSuchelementexecption wirft, weil wir versuchen, die leeren Elemente zu erhalten, die nicht möglich sind.

Beispiel 3:

Jetzt haben wir eine Lösung, um die Ausnahme von „NoSuchelementException“ zu vermeiden. Wir müssen den Iterator aufrufen, der die HasNext () -Methode ist. Die HasNext () -Methode überprüft jedes Mal bei der Iterierung während des Prozesses, dass ein Element in der danach oder nicht. Beginnen wir mit dem HasNext () -Methode -Programm. Wir deklarieren zuerst die Variable der ArrayList -Klasse "A", in der die ArrayList mit leeren Werten definiert ist. Wir fügen die Zeichenfolge nach der Erstellung der ArrayList aus der Methode add () ein. Dann rufen wir das Iteratorobjekt „I“ auf, das als Iterator () -Methode der ArrayList "A" bezeichnet wird. Das Element, das mit dem Iterator () durchquert. Die while -Schleife hat eine Bedingung, die die HasNext () -Methode verwendet. Wenn der HasNext () die wahre Anzeige angibt, wird die nächste () -Methode, die in der Druckanweisung bereitgestellt wird, ausgeführt.

Java importieren.Util.*;
public class samprogram3
public static void main (String [] args)
ArrayList a = new ArrayList ();
A.add (neue String ("Willkommenslernende");
Iterator i = a.Iterator ();
während ich.HasNext ())
System.aus.println (ich.nächste());


Die NoSozeelementException wird nicht aus dem vorherigen Programm angehoben.

Beispiel 4:

Es gibt eine weitere Lösung für die Ausnahme, dass die StringTokenizer -Instanz -Instanztechnik hasmoretokens () die String des Tokenizer untersucht, um festzustellen, ob zusätzliche Token vorhanden sind. Wir setzen das Objekt "S" von Stringstyp und weisen die Zeichenfolge dort zu. Danach haben wir ein "Strtoken" -Objekt, in dem wir die StringOkenizer -Klasse aufrufen und das String -Objekt "S" und den White Space -Wert festlegen. Dann haben wir eine Weile Schleife -Iteration, in der wir das HasMorToken bereitstellen, um die „NoSuchelementException“ zu bewältigen. Dann rufen wir die NextToken () -Methode an, um die Zeichenfolge zu drucken.

Java importieren.Util.StringTokenizer;
public class samprogram4
public static void main (String args [])
String S = "Java -Programm";
StringTokenizerStrToken = new StringTokenizer (s, "");
während (Strotoken.Hasmoretokens ())
System.aus.println (Strtoken.NextToken ());


Es wird keine Ausnahme erhoben, da die HasNextToken () -Methode durchgeführt wird, um die Ausnahme zu behandeln. Das nächsteToken repräsentiert die Stringwerte bis zum Ende.

Beispiel 5:

Die vorherige () Methode des Listiterators gibt den vorhergehenden Element der Sammlung zurück. Eine NoSuchelementException wird zur Laufzeit geworfen, wenn die Methode auf einem leeren Element oder am Startort des Artikels verwendet wird. Wir erstellen die leere ArrayList einer Zeichenfolge in der Variablen "StringList". Danach fügen wir der Liste einige Saiten hinzu. Der Listiterator () ist für das Iterationsverfahren in der ArrayList aufgerufen. Als nächstes beschäftigen wir die während des Programms zweimal in der Zeit. Erstens bestimmt die while -Schleife das Element nach der HasNext () -Methodform, die das nächste Element erhalten kann, indem er die HasNext () -Methode danach aufruft. Die zweite während der Schleife verwendet die HaSprevious () -Methode für die Iteratorwerte, um den vorherigen Wert aus der ArrayList zu erhalten. Beide Methoden handeln mit der Ausnahme, indem Sie die nächste und die vorherigen Werte überprüfen.

Java importieren.Util.Anordnungsliste;
Java importieren.Util.Listiterator;
Probe für öffentliche Klasse Program5
public static void main (String args [])
ArrayListRingList = new ArrayList ();
StringList.add ("java");
StringList.add ("Ruby");
StringList.add ("scala");
ListIteratoritr = StringList.listIterator ();
während (ITR.HasNext ())
itr.nächste();

während (ITR.HaSprevious ())
System.aus.println (itr.vorherige());


Der erste erhält die nächsten Werte der ArrayList von der HasNext () -Methode untersucht. Dann erhalten wir den vorherigen Wert der ArrayList in der Ausgabe von der Methode Hasprevious (). Die NoSuchelementException wird dort ebenfalls behandelt.

Beispiel 6:

Die nächste einfache Lösung ist die Aufzählungsmethode von HasMoreElements (). Die Aufzählung kehrt wahr, wenn es mehr Elemente hat. Ansonsten gibt es falsche zurück. Wir erzeugen die Sammlung leerer Vektoren im Vektorobjekt „Vect“, das mit dem numerischen Wert hinzugefügt wird. Danach geben wir das "E" -Erumationsobjekt an, um die Elemente aus seiner Element () -Methode zu erhalten. Anschließend stellen wir die HasMoreElements -Methode () im Bedingung () bereit, um zu überprüfen.

Java importieren.Util.Aufzählung;
Java importieren.Util.Vektor;
public class samprogram6
public static void main (String args [])
VectorVect = new vector ();
Vekt.add (8934);
Vekt.add (6127);
Aufzählung e = vect.Elemente ();
während (e.Has MoreElements ())
System.aus.println (e.NextElement ());


Die Vektorsammlung aller Elemente wird auf dem folgenden Bildschirm angezeigt. Das HasMoreElement () übernimmt die Ausnahme, indem es die weiteren Elemente identifiziert.

Abschluss

Die NoSuchelementException wird aufgelöst, indem festgestellt wird, ob der nächste Ort eines Iterablens gefüllt oder leer ist. Wir haben gezeigt, wie dieser Fehler bei der Verwendung der iterablen Methode auf der leeren Sammlung und dem nächsten Element aus der Sammlung angehoben wird. Wir müssen den Scheck vorstellen, bevor wir ihn über die Elemente iteriert, um diese Ausnahme loszuwerden. Wir haben mehrere Methoden bereitgestellt, um diese Ausnahme bei der Ausführung des Programms zu beheben.