Array

5 respostas
fjucks

System.out.println("Nome da cidade que deseja remover: "); nome = entrada.readLine(); for(Cidade cidades : cid){ if(cidades.getNome().equals(nome)){ cid.remove(cid.indexOf(cidade)); break; }else{ System.out.println("Cidade não encontrada...."); } } break;

pssoal nao sei o que ocorre, mas quando vou esxluir uma cidade de minha lista ele exclui a ultima que eu eu criei e nao a que eu dei o nome

5 Respostas

gpd38

Aparentemente não tem erro.

Use um debug e veja o que acontece. Assim você localiza o erro mais facil

tkx

Bom dia!

Qual estrutura de dados vc está usando pra guardar as cidades? Arraylist?
Vc criou o objeto Cidades… veja o método remove de Cidades!

M

gpd38:
Aparentemente não tem erro.

Use um debug e veja o que acontece. Assim você localiza o erro mais facil


O único erro que vejo é um de lógica: a mensagem de “não encontrada” deve ficar fora do for (senão ela aparecerá uma vez para cada cidade com nome diferente da buscada).

Fora isso, concordo com a sugestão do debugger.

M

Ahhh… quase que não me lembro a tempo: você não pode fazer dessa maneira! Se você tentar remover um objeto no meio de um for melhorado (enhanced for) você será surpreendido por um ConcurrentModificationException.

Nesse caso, use Iterator.

marcelo.bellissimo

Já respondi esse erro no outro tópico… você está excluindo da lista ‘cid’ o objeto ‘cidade’, e não o objeto ‘cidades’ que voce está recuperando na lista…

System.out.println("Nome da cidade que deseja remover: "); nome = entrada.readLine(); for(Cidade cidades : cid){ // o objeto atual voce nomeou como 'cidades' aqui... if(cidades.getNome().equals(nome)){ cid.remove(cid.indexOf(cidade)); // ...e aqui vc esta removendo o objeto 'cidade' break; }else{ System.out.println("Cidade não encontrada...."); } } break;

Criado 18 de abril de 2010
Ultima resposta 19 de abr. de 2010
Respostas 5
Participantes 5