Ola galera, sou novo no forum e estou começando a mexer em Java.
Minha duvida é em relação a ArrayList;
Preciso modificar os dados dentro de uma Classe, usando ArrayList. O problema é assim:
Tenho uma classe chamada Dados, com:
String nome;
char sexo;
int idade;
double altura;
double peso;
Depois de cadastrar um usuario nessa clase, eu preciso altera-lo, mas na hora de puxar os dados, usando o comando lista.set(h, cadastro.nome), o programa (Eclipse) pede para mudar a inicialização do nome de String para Dados…
Ola charles.eduardo, o problema inical ja consegui corrigir, agora aparece um pior…
No codigo abaixo, no case 3, eu tenho que excluir os dados de determinado cliente (que esta adicionado no ArrayList). Quando tento excluir o cliente no codigo abaixo, ele da um erro:
Exception in thread “main” java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at trabalho.TrabalhoBim.main(TrabalhoBim.java:77)
Cara isso acontece porque você está removendo o objeto da lista dentro do laço de iteração da própria lista.
tente fazer da seguinte forma, no case 3: coloque:
case 3:
boolean flag=false;
cadastro = new Dados();
System.out.println("Digite o nome: ");
e=leitura.next();
for (Dados h1 : lista){
if (h1.getNome().equals(e)){
flag=true;
cadastro =h1;
}
}
if(flag){
lista.remove(cadastro);
}
break;
Sempre que você for manipular uma lista, utilize uma lista auxiliar que pode armazenar os dados que devem ser removidos. Você aumenta o nomero
de iterações na lista, porem seu código fica claro, essa é considerada uma boa pratica.