The NoSuchElementException in Java is thrown when one tries to access an iterable beyond its maximum limit. The exception indicates that there are no more elements remaining to iterate over in an enumeration.
The NoSuchElementException is thrown by the following:
iterator::next()
Enumeration::nextElement()
StringTokenizer::nextElement()
The code below shows some common mistakes that can happen while using the methods above. These mistakes will throw the java.util.NoSuchElementException
.
import java.util.HashSet;import java.util.Hashtable;import java.util.Set;public class main {public static void main(String[] arguments) {Set hshSet = new HashSet();Hashtable hshTble = new Hashtable();// commands that throw exception.hshSet.iterator().next();hshTble.elements().nextElement();}}
The solution to this exception is to check whether the next position of an iterable is filled or empty. You should only move to this position if the check returns that the position is not empty. The following methods are used to check the next position:
hasNext()
hasMoreElements()