Você não pode alterar o conteúdo de uma coleção sendo iterada pelo enhanced for.
Ou você muda seu laço para um for tradicional ou então popula uma lista temporária com os elementos a serem removidos e após o enhanced for você os remove, dessa forma:
List<Object>removidos=newArrayList<>();for(Objecttemp:memoria){
if(temp.ogc()){
temp.jMake();temp.hMake();}else{
removidos.add(temp); // adiciona temp à lista de objetos a remover}
}
memoria.removeAll(removidos); // fora do for, remove os elementos
A
Andre_Costa
hum… interessante. se eu colocar como parâmetro um arraylist ele remove do array principal todos os objetos contidos no auxiliar?
S
Solucao aceita
staroski
Se for algo mais ou menos assim:
publicvoidmeuMetodo(List<Tipo>principal){
List<Tipo>removidos=newArrayList<>();for(Tipotemp:principal){
if(temp.ogc()){
temp.jMake();temp.hMake();}else{
removidos.add(temp); // adiciona temp à lista de objetos a remover}
}
principal.removeAll(removidos); // fora do for, remove os elementos
}