Recuerdo que hay un problema con el uso del bucle for para eliminar elementos en la lista, pero puede usar el bucle mejorado para el bucle. Luego, hoy descubrí que se informó un error al usarlo, y luego fui a popularizar la ciencia, y luego descubrí que esto era un malentendido. Hablemos de ello a continuación. . Extiende y salta directamente al final del artículo. Mira el resumen. .
Hay tres formas de bucle las listas de travers en Java, mejorar para el bucle (es decir, el bucle comúnmente conocido como foreach) e iterador transversal.
1. Para la lista de transversal de bucle
for (int i = 0; i <list.size (); i ++) {if (list.get (i) .equals ("del")) list.remove (i);}El problema con este método es que después de eliminar un elemento, el tamaño de la lista cambia y su índice cambia, lo que hará que se pierda ciertos elementos durante el recorrido. Por ejemplo, cuando elimina el primer elemento y continúa accediendo al segundo elemento de acuerdo con el índice, porque los elementos después de la relación eliminada se mueven uno por uno, el acceso real al tercer elemento. Por lo tanto, este método se puede usar al eliminar un elemento específico, pero no es adecuado al eliminar múltiples elementos en un bucle.
2. Mejore el bucle para
for (string x: list) {if (x.equals ("del")) list.remove (x);}El problema con este método es que después de eliminar el elemento, el mensaje de error se informará continuando en bucle, porque la modificación concurrente ocurre cuando se usa el elemento, lo que resulta en una excepción lanzada. Sin embargo, si usa Break para saltar inmediatamente después de la eliminación, no se activará un error.
3. Traversal iterador
Iterator <String> it = list.iterator (); while (it.hasnext ()) {string x = it.next (); if (x.equals ("del")) {it.remove (); }}Este método se puede recorrer y eliminar normalmente. Pero debe tenerse en cuenta que si usa el método de eliminación del iterador, si usa el método de eliminación de la lista, también informará el error concurrenteModificationException mencionado anteriormente.
Resumir:
(1) Si se divide para eliminar un elemento específico en la lista, puede usar cualquiera de los tres métodos, pero debe prestar atención a los diversos problemas analizados anteriormente al usarlo.
(2) Si se divide para eliminar múltiples elementos en la lista, debe usar el método Iterator.
El resumen anterior del método anterior para eliminar elementos en las listas en Java es todo el contenido compartido por el editor. Espero que pueda darle una referencia y espero que apoye más a Wulin.com.