Aeeeww!
To tendo essa exception ai qdo tento remover ( remove() ) um objeto de uma HashMap. Detalhe que to com o conteudo desse indice numa variavel, objtida pelo método get().
To querendo remover o objeto ( elemento do map ) caso encontre um determinado. Sei que podia setar pra null o objeto no indice, mas qria saber pq ta acontecendo isso… Alguem sabe ?? Tentei ver se tem algo em algum livro aki, mas nada. Se alguem souber e puder dar um alo, agradeço…
Segue o exemplo do codigo abaixo se alguem quiser testar:
static class Carro{
String nome = "";
double qtde = 0;
Carro(String pnome, double pqtde){
nome = pnome;
qtde = pqtde;
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
java.util.HashMap mapa = new java.util.HashMap();
mapa.put(new Integer(1), new Carro("Audi A3", 1.5));
mapa.put(new Integer(2), new Carro("Astra", 2.5));
mapa.put(new Integer(3), new Carro("BMW", 3.2));
mapa.put(new Integer(4), new Carro("Peugeot 206", 4.1));
mapa.put(new Integer(5), new Carro("Golf", 8.0));
Set set = mapa.keySet();
Iterator i = set.iterator();
while(i.hasNext()){
Integer index = (Integer)i.next();
Carro meuCarro = (Carro)mapa.get(index);
if(meuCarro.nome.equals("BMW")){
mapa.remove(index);
}else{
meuCarro.nome = meuCarro.nome + " do Bruno";
}
}
set = mapa.keySet();
i = set.iterator();
while(i.hasNext()){
Carro meuCarro = (Carro)mapa.get((Integer)i.next());
System.out.println(meuCarro.nome);
}
System.exit(0);
}

