Remover elementos do objeto usado na iteração

Ola !

é 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).

Abs

mmartinsrj,

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.:

int i = 0;

while (i++ < 10) faz algo;

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);
		 }