Remover item dentro de laço iterator e synchronized

1 resposta
G

pessoal, haveria algum problema em remover um item deste modo? (usando break)

public synchronized void removeText(long id) throws RemoteException {
		// TODO Auto-generated method stub
		try{
		      Iterator<StoredData> ite = vDados.iterator();
		      while( ite.hasNext())
		      {
			       StoredData sd = ite.next();
			       if( sd.idText == id )
			       {
				        break ;
			       }
		      }
		      ite.remove();
		}
		catch(Exception e){
			System.out.println("Error Remove"+ e.toString());
		}

Outra pergunta, aproveitando esta: Neste caso, tem como usar synchronized em bloco ao invés de ser no método como acima?

1 Resposta

davidbuzatto

Nenhum problema.

Tem sim.

synchronized {
   
   // seu código
   
}

mas cuidado com esse bloco synchronized... vai que alquem acessa a sua estrutura de dados fora do bloco ou em outra parte do aplicativo... pode gerar inconsistências.

Falow!

Criado 23 de julho de 2006
Ultima resposta 23 de jul. de 2006
Respostas 1
Participantes 2