Deseo buscar a través de un ArrayLst y eliminar las entradas que sean iguales.Modificar una lista de arreglos en Java
Por ejemplo, si mi lista era: manzana, naranja, plátano, pera, melocotón, naranja,
luego "naranja" se suprimiría (ambas ocurrencias).
Ingenuamente, he intentado:
for(String word : userlist){
for(String otherword : userlist){
...
}
}
donde escribí cómo .Remove (lastIndexOf (userword)) si es igual a la palabra y sus índices son diferentes.
Esto dio lugar a una excepción tras otra, y rápidamente me di cuenta de que estaba manipulando una lista mientras la repetía, lo que hacía que todo saliera mal.
Así que decidimos hacer una copia de la lista
ArrayList<String> copylist = userlist;
for(String word : copylist){
for(String otherword : copylist){
if(word.equalsIgnoreCase(otherword)
&& copylist.lastIndexOf(word)!=copylist.lastIndexOf(otherword)){
userlist.remove(userlist.lastIndexOf(word));
userlist.remove(userlist.lastIndexOf(otherword));
}
}
}
así que he intentado esto, y tenía problemas similares. Notablemente ConcurrentModificationException. Después de ajustarlo no puedo entenderlo, lo que en mi cabeza debería ser un proceso bastante fácil, para trabajar en Java. Por favor ayuda.
¿Nunca te vas a dormir? :( – musiKk
@musiKk: ver http://meta.stackexchange.com/questions/555/ –
@MusiKk también ver http://meta.stackexchange.com/questions/9134/jon-skeet-facts –