12/01/2012, 12:44
|
| | | Fecha de Ingreso: noviembre-2010 Ubicación: Lima
Mensajes: 136
Antigüedad: 14 años Puntos: 24 | |
Respuesta: funcion remove ArrayList Pues el error que cometes está claro.
Te lo explico. Supongamos que tienes la lista:
Código Java:
Ver originalList<String> listaNombres = new ArrayList<String>(); listaNombres.add("Pepe"); listaNombres.add("Pepe"); listaNombres.add("Juan"); listaNombres.add("Pepe"); listaNombres.add("Pepe"); listaNombres.add("Roberto");
Para la primera iteración de tu bucle, i vale 0. Se cumple la condicional, y procedes a remover al Pepe que está en el índice 0 de la lista. Como ya no está el Pepe del índice cero, entonces el Pepe que estaba en el índice 1 pasó a estar en el índice 0. De la misma manera, Juan estaba en el índice 2, pero ahora estará en el índice 1, y así sucesivamente con los demás integrantes de la lista.
Ahora para la segunda iteración de tu bucle, i vale 1. ¡Hey, pero hay un Pepe en la posición cero! Para tu mala suerte, el bucle ya pasó el índice cero. ¿Qué hacer? Pues sencillo, cada vez que elimines un elemento de tu lista haz que tu algoritmo mantenga el valor de i.
Código Java:
Ver originalfor (int i=0;i<listaNombres.size();i++){ if (listaNombres.get(i).equals("Pepe")){ listaNombres.remove(i); i--; } }
|