English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Un'eccezione è un problema che si verifica durante l'esecuzione del programma (errore di runtime). Quando si verifica un'eccezione, il programma si interrompe bruscamente e il codice dopo la riga che ha generato l'eccezione non verrà mai eseguito. Ogni eccezione è rappresentata dalla sua classe specifica.
Questa è un'eccezione di runtime, ossia si verifica durante l'esecuzione.
Se provi a ottenere un elemento da un oggetto vuoto, o a accedere ai contenuti di un set, un array o un altro oggetto utilizzando metodi di accesso come next() o nextElement() dell'Enumeration, Iterator o tokenizer, allora cercare di ottenere l'elemento successivo dopo aver raggiunto la fine dell'oggetto (set, array o altro oggetto) genererà NoSuchElementException.
Metodo nextElement() dell'Enumeration - VectorLe collezioni come HashTable hanno un metodo chiamato elements(), che restituisce un oggetto Enumeration (interfaccia) che contiene tutti gli elementi della raccolta.
Utilizzando questo oggetto, è possibile ottenere gli elementi uno dopo l'altro utilizzando il metodo nextElement().
Se si chiama questo metodo su un set vuoto o dopo aver raggiunto la fine del set, verrà generato un NoSuchElementException durante l'esecuzione.
import java.util.Enumeration; import java.util.Vector; public class EnumExample { public static void main(String args[]) { // Eseguire l'istanziazione della coda Vector<Integer> vec = new Vector<Integer>(); // Riempiere la coda vec.add(1254); vec.add(4587); // Utilizzare l'enumerazione per recuperare gli elementi Enumeration<Integer> en = vec.elements(); System.out.println(en.nextElement()); System.out.println(en.nextElement()); //Ricerca dell'elemento successivo dopo aver raggiunto la fine System.out.println(en.nextElement()); } }
1254 4587 Exception in thread "main" java.util.NoSuchElementException: Vector Enumeration at java.util.Vector$1.nextElement(Unknown Source) at MyPackage.EnumExample.main(EnumExample.java:18)
Metodi nextElement() e nextToken() di StringTokenizer -La classe StringTokenizer accetta String e delimiter come parametri del costruttore, dividendo il dato String in vari segmenti ogni volta che si incontra il delimitatore specificato.
Questi metodi nextToken() e nextElement() restituiscono il token successivo nel generatore di token. Se si chiama questi metodi su un oggetto Tokenizer vuoto o se si chiama NoSuchElementException alla fine, verrà generato un NoSuchElementException durante l'esecuzione.
import java.util.StringTokenizer; public class StringTokenizerExample{ public static void main(String args[]) { String str = "Hello how are you"; //Esempio di istanziazione della classe StringTokenizer StringTokenizer tokenizer = new StringTokenizer(str, " "); //Stampare tutti i token System.out.println(tokenizer.nextToken()); System.out.println(tokenizer.nextToken()); System.out.println(tokenizer.nextToken()); System.out.println(tokenizer.nextToken()); //Ricezione del token successivo dopo aver raggiunto la fine tokenizer.nextToken(); tokenizer.nextElement(); } }
Hello how are you Exception in thread "main" java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(Unknown Source) at MyPackage.StringTokenizerExample.main(StringTokenizerExample.java:16)
Il metodo next() di Iterator -Java fornisce le classi Iterator e ListIterator per recuperare gli elementi degli oggetti di集合. Il metodo next() di Iterator e ListIterator restituisce l'elemento successivo dell'insieme.
Se si chiamano questi metodi su un insieme vuoto o si chiama NoSuchElementException alla fine, viene generato in esecuzione.
Allo stesso modo, se si chiama questo metodo su un oggetto vuoto o nel suo punto di dichiarazione, il metodo previous() di ListIterator restituirà l'elemento precedente dell'insieme e genererà NoSuchElementException in esecuzione.
import java.util.ArrayList; import java.util.Iterator; public class NextElementExample{ public static void main(String args[]) { //Istanzia l'oggetto ArrayList ArrayList<String> list = new ArrayList<String>(); //Riempi l'ArrayList list.add("mele"); list.add("mango"); list.add("arance"); //Ottieni l'oggetto Iterator dell'ArrayList Iterator it = list.iterator(); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.next()); //Ricerca dell'elemento successivo dopo aver raggiunto la fine it.next(); } }
mele mango arance Exception in thread "main" java.util.NoSuchElementException at java.util.ArrayList$Itr.next(Unknown Source) at MyPackage.NextElementExample.main(NextElementExample.java:19)
import java.util.ArrayList; import java.util.ListIterator; public class NextElementExample{ public static void main(String args[]) { //Istanzia l'oggetto ArrayList ArrayList<String> list = new ArrayList<String>(); //Riempi l'ArrayList list.add("mele"); list.add("mango"); list.add("arance"); //Ottieni l'oggetto Iterator dell'ArrayList ListIterator<String> it = list.listIterator(); it.next(); it.next(); it.next(); System.out.println(it.previous()); System.out.println(it.previous()); System.out.println(it.previous()); System.out.println(it.previous()); } }
risultato di output
arance mango mele Exception in thread "main" java.util.NoSuchElementException at java.util.ArrayList$ListItr.previous(Unknown Source) at MyPackage.NextElementExample.main(NextElementExample.java:22)