¿Cómo usar el método iterador para eliminar un elemento de una colección en Java?

Como Usar El Metodo Iterador Para Eliminar Un Elemento De Una Coleccion En Java



El ' iterador El método ofrece una manera segura y fácil de eliminar o eliminar elementos de datos específicos de una colección mientras se itera sobre ella. Previene la ocurrencia de “ ConcurrentModificationException ” que surge cuando el bucle for mejorado intenta modificar la colección. Almacena la pista de la posición actual y ofrece a los programadores la oportunidad de avanzar y eliminar los elementos subyacentes según sea necesario.

Este blog demuestra el proceso para eliminar un elemento de una colección utilizando el método iterador.







¿Cómo usar el método iterador para eliminar un elemento de una colección en Java?

El método iterador es unidireccional y se puede usar con varios tipos de colección, incluidos ' ArrayList”, “LinkedList ”, etc. Ofrece una forma uniforme de eliminar elementos de cualquier colección que implemente el “ Iterable ' interfaz.



Veamos algunos ejemplos para comprender mejor el método del iterador:



Ejemplo 1: Eliminación de elementos específicos de la colección mediante el método iterador

El método iterador se puede utilizar con “ si ” sentencias o bucles para seleccionar los elementos especificados. Y luego el “ eliminar ()” se utiliza para realizar la operación de eliminación como se muestra a continuación:





importar java.util.* ;
clase iterexamen
{
  público estático vacío principal ( Cadena [ ] argumentos )
  {
Lista de arreglo < Entero > demoArrList = nuevo Lista de arreglo < Entero > ( ) ;
  para ( En t i = 0 ; i <= 20 ; i = i + 2 )
  {
demostraciónArrList. agregar ( i ) ;
  }
iterador < Entero > itr = demostraciónArrList. iterador ( ) ;
  Sistema . afuera . imprimir ( 'Lista de matriz proporcionada:' ) ;

  para ( En t i = 0 ; i < demostraciónArrList. tamaño ( ) ; i ++ )
    {
    Sistema . afuera . imprimir ( demostraciónArrList. conseguir ( i ) + ' ' ) ;
    }
    mientras ( itr. tieneSiguiente ( ) )
    {
    si ( itr. próximo ( ) % 3 == 0 )
itr. eliminar ( ) ;
    }
    Sistema . afuera . imprimir ( ' \norte Después de eliminar elementos impares de ArrayList' ) ;
  para ( En t i = 0 ; i < demostraciónArrList. tamaño ( ) ; i ++ )
    {
      Sistema . afuera . imprimir ( demoArrLis. conseguir ( i ) + ' ' ) ;
    }
  }
}

Descripción del código anterior:

  • Primero se crea el ArrayList y luego un múltiplo de “ 2 ” se inserta hasta el rango de “ 20 ” con la ayuda del “ para ' bucle.
  • A continuación, declara un “ iterador ” objeto de método para mostrar los elementos de ArrayList en la consola.
  • Luego, utilice el “ tieneSiguiente ()” con el objeto iterador para atravesar todos los elementos ArrayList residentes.
  • Después de eso, el “ si La instrucción ” se utiliza para verificar los elementos que son completamente divisibles por “ 3 ' dentro de eso.
  • Entonces el ' eliminar ()” se utiliza para eliminar los elementos que devuelve el “ si ' declaración.
  • Al final, el ArrayList actualizado se ha mostrado usando el ' para ' bucle.

Después de la compilación:



El resultado muestra los elementos específicos, que son divisibles por tres y se eliminan de ArrayList mediante un método iterador.

Ejemplo 2: Eliminación de todos los elementos de la colección

Para eliminar todos los elementos residentes de la colección, se puede usar el método iterador junto con su ' eliminar ()” como se muestra a continuación:

importar java.util.* ;
clase Vacío
{
  público estático vacío principal ( Cadena argumento [ ] )
  {
Vector < Entero > pruebaVector = nuevo Vector < Entero > ( ) ;
vector de prueba. agregar ( 18 ) ;
vector de prueba. agregar ( 21 ) ;
vector de prueba. agregar ( 25 ) ;
vector de prueba. agregar ( 27 ) ;
vector de prueba. agregar ( 30 ) ;

iterador < Entero > atravesar = vector de prueba. iterador ( ) ;
  Sistema . afuera . imprimir ( 'Elementos existentes:' ) ;
  mientras ( atravesar. tieneSiguiente ( ) )
    Sistema . afuera . imprimir ( atravesar. próximo ( ) + ' ' ) ;
    Sistema . afuera . imprimir ( ' \norte El vector de prueba contiene ' + vector de prueba. tamaño ( ) + 'elementos' ) ;
atravesar = vector de prueba. iterador ( ) ;
  mientras ( atravesar. tieneSiguiente ( ) )
  {
    Sistema . afuera . imprimir ( ' \norte eliminando ' + atravesar. próximo ( ) ) ;
atravesar. eliminar ( ) ;
  }
  Sistema . afuera . imprimir ( ' \norte Ahora, el testVector contiene ' + vector de prueba. tamaño ( ) + 'elementos' ) ;
  }
}

Descripción del código:

  • Primero, declara e inicializa “ Vector ” con valores de tipo entero ficticio usando el “ agregar ()' método.
  • A continuación, cree un método iterador que utilice el ' tieneSiguiente ()' y ' próximo ()' métodos. Muestra los elementos de datos residentes y su tamaño correspondiente.
  • Luego, utilice el “ tieneSiguiente ()” a lo largo del objeto iterador dentro del “ mientras ' bucle.
  • Después de eso, utilice el “ próximo ()” para seleccionar el próximo elemento, y luego, el eliminar () se llama al método para eliminar cada elemento receptor.
  • De esta forma, todos los elementos del Vector se eliminan y el tamaño del Vector se muestra en la consola.

Descripción del código:

El código anterior confirma que se han eliminado todos los elementos de la colección.

Ejemplo 3: Eliminación de elementos mediante ListIterator

El ListIterator funciona de manera similar al método iterador. El ListIterator realiza el recorrido en ambos lados en las direcciones de avance y retroceso. Para eliminar elementos específicos de la colección usando ListIterator en Java, visite el siguiente código:

importar java.util.ArrayList ;
importar java.util.ListIterator ;
público clase ListIteratorDemo {

  // Inicializando el método main()
  público estático vacío principal ( Cadena [ ] argumentos )
  { //Declaración e inicialización de ArrayList
Lista de arreglo < Cadena > creciendo = nuevo Lista de arreglo < Cadena > ( ) ;
creciendo agregar ( 'Sudadera' ) ;
creciendo agregar ( 'Polo' ) ;
creciendo agregar ( 'Henley' ) ;
creciendo agregar ( 'Sudor' ) ;
creciendo agregar ( 'Casual' ) ;
creciendo agregar ( 'Lujo' ) ;
creciendo agregar ( 'Ajuste seco' ) ;


ListIterator < Cadena > litro = creciendo iterador de lista ( ) ;
    Sistema . afuera . imprimir ( 'Lista antes de la eliminación' ) ;
  para ( En t i = 0 ; i < creciendo tamaño ( ) ; i ++ )
    Sistema . afuera . imprimir ( creciendo conseguir ( i ) + ' ' ) ;
  mientras ( litro. tieneSiguiente ( ) ) {
    si ( litro. próximo ( ) . es igual ( 'Sudor' ) ) {
litro. eliminar ( ) ;
    }
  }
  Sistema . afuera . imprimir ( ' \norte Lista después de la eliminación' ) ;
  para ( En t i = 0 ; i < creciendo tamaño ( ) ; i ++ )
    Sistema . afuera . imprimir ( creciendo conseguir ( i ) + ' ' ) ;
  }
}

Descripción del código anterior:

  • Primero, declare e inicialice ArrayList con los valores de tipo String ficticios y muestre todos los elementos en la consola usando el ' para ' bucle.
  • A continuación, cree un objeto que llame al ' tieneSiguiente ()” método dentro del “ mientras ' bucle. Atraviesa todos los elementos residentes.
  • Entonces el ' si se utiliza una declaración que verifica cada elemento con un texto específico, cuando ese elemento coincide con el ' eliminar ()” se llama al método. Elimina el elemento específico del “ aArte ” llamado ArrayList.
  • Al final, muestre el ArrayList modificado en la consola.

Después de la compilación:

La instantánea confirma que el elemento de datos especificado se eliminó de la colección mediante ListIterator.

Conclusión

Para eliminar el elemento de una colección, el ' eliminar ()” se utiliza el método del iterador. El iterador atraviesa ArrayList para encontrar los datos de destino. Una vez que se encuentra el “ eliminar ()” se utiliza para eliminar ese elemento de datos específico. Ofrece una técnica estandarizada en diferentes colecciones y evita problemas y la aparición de varias excepciones como ' ConcurrentModificationException ”. Junto a él, el “ ListIterator ” también puede ser útil.