Estou fazendo um pequeno programa para treinar os conceitos de Java, onde o objetivo é que usuário consiga incluir registro numa agenda, listar, editar e excluir.
Com a ajuda do pessoal aqui do fórum, consegui criar os métodos adicionar e lista, porém estou com dificuldades ao criar os métodos excluir e editar.
Método excluir (ps: Acho que a lógica está errada - criei um número de registro para cada objeto na lista e comparo se o registro do objeto é igual ao que o usuário deseja excluir):
[code] public void excluirRegistro(){
int excluir;
Scanner sc = new Scanner(System.in);
System.out.println("Digite o número do registro que deseja excluir: ");
excluir=sc.nextInt();
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at agenda.RegistroAgenda.excluirRegistro(RegistroAgenda.java:90)
at agenda.Main.main(Main.java:38)
Java Result: 1
E sobre a função editar registro da agenda, não consegui pensar numa maneira para editar este registros. Pensei em controlar pelo número de registros também…alguma dica?
Esse erro ocorre porque você não pode alterar a collection de dentro de um loop for each. Se você colocar um break logo após o remove() talvez dê certo. Agora, já que você está usando uma estrutura do tipo chave->valor, você pode usar uma Map, sua vida vai ficar bem mais fácil.
Desculpe a falta de conhecimento, mas o que é uma Map? hehe
Abraços![/quote]
Map ou HashMap é também conhecido como dicionário, pois sua função assemelha-se com a de um dicionário, ele é definido com chaves e valores, cada chave possuindo seu próprio valor. Sua chave e valor pode ser de qualquer tipo, seja String, Integer, Char, Pessoa…
Exemplo como funciona um hashmap em comparação a um dicionário:
Você procura uma certa palavra no dicionário para saber seu significado.
Palavra(Key) Significado(Value)
‘Gato’ —> Gato é um mamífero que come ratos.
‘Cachorro’ —> Cachorro é um mamífero que come gatos.
Desculpe a falta de conhecimento, mas o que é uma Map? hehe
Abraços![/quote]
Map ou HashMap é também conhecido como dicionário, pois sua função assemelha-se com a de um dicionário, ele é definido com chaves e valores, cada chave possuindo seu próprio valor. Sua chave e valor pode ser de qualquer tipo, seja String, Integer, Char, Pessoa…
Exemplo como funciona um hashmap em comparação a um dicionário:
Você procura uma certa palavra no dicionário para saber seu significado.
Palavra(Key) Significado(Value)
‘Gato’ —> Gato é um mamífero que come ratos.
‘Cachorro’ —> Cachorro é um mamífero que come gatos.
//Vamos excluir todos os “10”
Iterator it = inteiros.interator();
while (it.hasNext()) {
Integer numero = it.next();
if (numero == 10) {
it.remove();
}
}[/code]
E não se esqueça que para comparar objetos não se usa == e sim o método equals.