Cómo arreglar la Util -NosuchelementException de Java

Cómo arreglar la Util -NosuchelementException de Java
En Java, la Excepción NosuchelementException se eleva cuando se excede el límite máximo de un iterable. Esta excepción es planteada por una variedad de métodos de accesorios de enumeración, iterador o tokenizer para indicar que el elemento solicitado no está presente. La concepción nosuchelementException se conoce como una expectativa sin control porque se deriva de una runtimeException. Para corregir esta excepción, verifique que el objeto subyacente contenga más elementos antes de implementar los métodos de accesorios que posiblemente generen la concepción de nosuchelementException. Existen algunos métodos para determinar si un objeto tiene más elementos de los que tiene en las interfaces especificadas que incluyen estos métodos de accesorios.

Ejemplo 1:

Allí, tenemos diferentes métodos de accesorios que lanzan esta excepción si el elemento solicitado no existe. Si no hay más elementos en la iteración, el método Next () en Java da NosuchelementException. De lo contrario, devuelve el siguiente elemento que se coloca en la iteración. Tenemos el siguiente ejemplo en el que primero definimos la clase Java e implementamos el programa dentro del método main () de la clase. Tenemos la declaración variable "Strarray" donde se inicializa el ArrayList. Agregamos solo un elemento a la lista de matriz que es una cadena.

A continuación, creamos la variable "itrarr" para la clase de iterador para iterar sobre los elementos de la lista de matrices dada. La variable "itrarr" se llama luego el "strarry" junto con el método iterator (). Después de eso, imprimimos el siguiente elemento de la ArrayList "StrraRray" que imprime el valor dado de ArrayList. El método Next () se emplea para obtener el elemento sucesivo de una lista de matrices. Además, imprimimos el siguiente elemento de la lista de matrices anterior que no existe, ya que solo proporcionamos un elemento a la lista de matrices "StrraRray".

importar java.utilizar.*;
clase pública SampleProgram1
public static void main (string [] args)
ArrayListsTraRray = new ArrayList ();
Estrella.agregar (nueva cadena ("Java Ejemplo"));
Iterador ITRARR = STRARRAY.iterador ();
Sistema.afuera.println (itrarr.próximo());
Sistema.afuera.println (itrarr.próximo());

La ejecución del programa aumentó la concepción de nosuchelementExt. Se encuentra como sabemos que no existe tal elemento siguiente para la iteración después de que se obtenga el elemento dado.

Ejemplo 2:

El ejemplo anterior se proporciona con el código fuente que elevó la concepción de nosuchelementException para la iteración del siguiente elemento a través del método siguiente (). Ahora, el método de accesor de siguiente () de la clase Iterator se usa en este ejemplo para intentar acceder a un hashmap. Pero dado que el hashmap está vacío, recibimos una concepción de nosuchelementEment. Primero, tenemos el método Main () definido de la clase Java donde establecemos la interfaz hashset. Declaramos el objeto "myset" de la clase establecida y asigna el hashset () que está vacío. Después de eso, tenemos el objeto hashtable que es "mytable" donde se define el hashtable vacío (). Luego, empleamos el iterador con el método Next (). El iterador itera sobre el conjunto y luego proporciona el siguiente valor establecido. También obtenemos los elementos del método hashtable () a través del método Elements () y el siguiente elemento para la tabla a través del método nextElement (). Obtenemos una oposición de nosuchelementExtEnse ya que tanto el hashset como la hashtable están vacíos.

importar java.utilizar.Hashset;
importar java.utilizar.Tabla de picadillo;
importar java.utilizar.Colocar;
clase pública SampleProgram2
public static void main (string [] args)
Establecer myset = new Hashset ();
HashtableMytable = new Hashtable ();
Myset.iterador ().próximo();
Mi mesa.elementos().nextElement ();

Allí, obtenemos la salida que arroja la Ejecución de Nosuchelementa porque estamos tratando de obtener los elementos vacíos que no son posibles.

Ejemplo 3:

Ahora, tenemos una solución para evitar la excepción de "nosuchelementException". Necesitamos invocar el iterador que es el método hasnext (). El método hasNext () verifica cada vez que se está itera durante el proceso que un elemento está presente en el conjunto después o no. Comencemos con el programa de método hasNext (). Primero declaramos la variable de clase ArrayList "A" donde la ArrayList se define con valores vacíos. Insertamos la cadena después de la creación de ArrayList desde el método add (). Luego, invocamos el objeto iterador "I" que se llama el método iterador () del ArrayList "A". El elemento que atraviesa con el iterator () se logra utilizando el bucle while. El bucle While tiene una condición que usa el método HasNext () para verificar la existencia del siguiente elemento de la lista de matrices especificada. Cuando el Hasnext () da la verdadera indicación, el método Next () que se implementa en la declaración de impresión se ejecuta.

importar java.utilizar.*;
clase pública SampleProgram3
public static void main (string [] args)
ArrayList a = new ArrayList ();
a.Agregar (nueva cadena ("Bienvenidos alumnos"));
Iterador i = a.iterador ();
mientras yo.HasNext ())
Sistema.afuera.println (yo.próximo());


El NosucheelementException no se plantea del programa anterior porque el método hasNext () verifica los elementos después y luego el método Next () proporciona el elemento de ArrayList.

Ejemplo 4:

Hay otra solución para la excepción de que la técnica de instancia de clase StringTokenizer Hasmoretokens () examina la cadena del tokenizer para determinar si hay tokens adicionales. Establecemos el objeto "S" del tipo de cadena y asignamos la cadena allí. Después de eso, tenemos un objeto "strToken" donde llamamos a la clase StringTokenizer y establecemos el objeto de cadena "S" y el valor de espacio en blanco. Luego, tenemos una iteración de bucle de tiempo donde implementamos el HasmorToken para manejar la "NosuchelementException". Luego, llamamos al método NextToken () para imprimir la cadena.

importar java.utilizar.StringTokenizer;
clase pública SampleProgram4
public static void main (string args [])
Cadena S = "Programa Java";
StringTokenizerRTToken = new StringTokenizer (s, "");
Mientras (StrToken.Hasmoretokens ())
Sistema.afuera.println (strtoken.nextToken ());


No hay excepción planteada ya que el método HasnextToken () se realiza para manejar la excepción. El NextToken representa los valores de cadena hasta el final.

Ejemplo 5:

El método anterior () del listIterator devuelve el elemento anterior de la colección. Se lanza una ESUCHELEMEMETEXCeption en tiempo de ejecución si el método se usa en un elemento vacío o en la ubicación inicial del elemento. Creamos la lista de matrices vacías de una cadena en la variable "StringList". Después de eso, agregamos algunas cadenas a la lista. Se solicita el ListIterator () para el procedimiento de iteración en ArrayList. A continuación, empleamos el bucle while dos veces en el programa. Primero, el bucle While determina el elemento después a través del formulario del método HasNext () que puede obtener el siguiente elemento llamando al método HasNext () después de eso. El segundo mientras Loop usa el método Hasprevious () en los valores de Iterator para obtener el valor anterior de ArrayList. Ambos métodos manejan la excepción verificando los valores siguientes y anteriores.

importar java.utilizar.Lista de arreglo;
importar java.utilizar.ListIterator;
clase pública SampleProgram5
public static void main (string args [])
ArrayListsTringList = new ArrayList ();
Stringlist.agregar ("java");
Stringlist.agregar ("rubí");
Stringlist.agregar ("Scala");
ListIteratorITR = StringList.listIterator ();
Mientras (ITR.HasNext ())
ITR.próximo();

Mientras (ITR.hasprevious ())
Sistema.afuera.println (ITR.anterior());


El primero obtiene los siguientes valores de la lista de matrices de examinar a través del método hasNext (). Luego, obtenemos el valor anterior de ArrayList en la salida del método hasprevious (). La concepción de nosuchelementException también se maneja allí.

Ejemplo 6:

La siguiente solución simple es el método de enumeración de HaSmoreElements () que debe usarse para determinar si esta enumeración contiene elementos adicionales. La enumeración devuelve verdadero si tiene más elementos. De lo contrario, devuelve falso. Generamos la colección de vectores vacíos en el objeto vectorial "vecto" que se agrega con el valor numérico. Después de eso, especificamos el objeto de enumeración "E" para obtener los elementos de su método Element (). Luego, implementamos el método HaSmoreElements () en la condición while () para verificar si los vectores de enumeración proporcionan más elementos o no.

importar java.utilizar.Enumeración;
importar java.utilizar.Vector;
clase pública SampleProgram6
public static void main (string args [])
VectorVect = new Vector ();
vecto.agregar (8934);
vecto.agregar (6127);
Enumeración e = vect.elementos();
mientras (e.HasmoreElements ())
Sistema.afuera.println (e.nextElement ());


La colección vectorial de todos los elementos se muestra en la siguiente pantalla. El HASMoreElement () maneja la excepción identificando los elementos adicionales.

Conclusión

La concepción de nosuchelementException se resuelve determinando si la siguiente ubicación de un iterable está llena o vacía. Mostramos cómo se plantea este error al usar el método Iterable en la colección vacía y el siguiente elemento de la colección. Tenemos que colocar el cheque antes de iterarlo sobre los elementos para deshacerse de esa excepción. Proporcionamos múltiples métodos para resolver esta excepción al ejecutar el programa.