é possivel remover elementos de um objeto depois de ja estar iterando sobre ele?
tenho o seguinte:
for(String s:listaceps.keySet())
em determinados casos, gostaria de remover elementos do “listaceps”, baseado em alguns criterios. e continuar o loop sem tais elementos (para agilizar o loop).
você quer dizer, por exemplo, percorrer uma fila e ir desenfileirando os objetos no próprio for, para economizar instruções? se for isso, é possível sim, é igual incrementar ou decrementar um contador dentro da condição do próprio laço, ex.:
Para remover um elemento, o enhanced-loop não resolve. Você só conseguirá remover usando um Iterator. Ele é usado por debaixo dos panos pelo enhanced-loop, mas sem disponibilizar o método remove.
Map<String, String> cepEndereco = new HashMap<String, String>();
cepEndereco.put("11111111", "rua a");
cepEndereco.put("22222222", "rua b");
cepEndereco.put("33333333", "rua c");
Iterator<Entry<String, String>> it = cepEndereco.entrySet().iterator();
while(it.hasNext()){
Entry<String, String> entry = it.next();
if(entry.getKey().equals("22222222")){
it.remove();
}else{
// faça o que você quiser
}
}
// agora, usamos o enhanced-for, apenas para leitura.
for(String chave: cepEndereco.keySet()){
System.out.println(chave);
}