Duvida Array List

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…

Alguem ae poderia me ajudar?

RodrigoB., posta os codigos quem sabe pode facilitar para tentar ajudar-lhe!!!

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)

O que posso fazer?

[code]package trabalho;

import java.io.IOException;
import java.util.Scanner;
import java.util.ArrayList;

class Dados{
public String nome;
public char sexo ;
public int idade;
public double altura;
public double peso;
public int codigo;
}

public class TrabalhoBim {

public static void main(String[] args) throws IOException {

	Scanner leitura = new Scanner(System.in);
	ArrayList<Dados> lista = new ArrayList<Dados>();

	int i,a,b=0,c=1,d=0,f=0,g=0,h;
	String e;

	while (f==0){

		Dados cadastro = new Dados();
		System.out.println("1-Cadastro \n 2-Alterar dados \n 3-Excluir \n 4-Informações Gerais \n 5-Informação Particular \n 6-Calculo IMC");
		a=leitura.nextInt();

		switch (a){
		case 1:
		
			System.out.print("Digite o nome: ");
		
			cadastro.nome=leitura.next();
			System.out.println("Digite a sua idade");
			cadastro.idade=leitura.nextInt();
			System.out.print("Digite o sexo: ");
			cadastro.sexo = (char)System.in.read();
			System.out.print("Digite a altura: ");
			cadastro.altura = leitura.nextDouble();
			System.out.println("Digite o peso: ");
			cadastro.peso = leitura.nextDouble();
			lista.add(cadastro);
			System.out.println(cadastro.altura);
			System.out.println(cadastro.nome);
			break;
			
		case 2:
			System.out.println("Digite o nome: ");
			e=leitura.next();
			for (Dados h1 : lista){
				if (h1.nome.equals (e)){
				
					System.out.println("Altere o nome: ");
					h1.nome=leitura.next();
					System.out.println("Altere a idade ");
					h1.idade=leitura.nextInt();
					System.out.println("Altere o sexo: ");
					h1.sexo=(char)System.in.read();
					System.out.println("Altere a altura: ");
					h1.altura=leitura.nextDouble();
					System.out.println("Altere o peso: ");
					h1.peso=leitura.nextDouble();
					

				}
			}

			break;
		case 3:
			System.out.println("Digite o nome: ");
			e=leitura.next();
			for (Dados h1 : lista){
				if (h1.nome.equals (e)){
					
					lista.remove(h1);
					}
				}
			break;
		case 4:
			for (Dados cadastro1:lista){
				System.out.println(cadastro1.nome);
				System.out.println(cadastro1.sexo);
				System.out.println(cadastro1.idade);
				System.out.println(cadastro1.altura);
				System.out.println(cadastro1.peso);
			}
			break;
		case 5:
			System.out.println("Digite o nome da pessoa: ");
			e=leitura.next();
			for (Dados h1 : lista){
				if (h1.nome.equals (e)){
					System.out.println(h1.nome);
					System.out.println(h1.idade);
					System.out.println(h1.sexo);
					System.out.println(h1.altura);
					System.out.println(h1.peso);
				}
		}
			break;
		
	}
		System.out.println("Cadastrar outros? 1-Nao 0-Sim");
		f=leitura.nextInt();
}

}
}
[/code]

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;

danilovteodoro, cara, valeu, funcionou certinho. Obrigado msm.

Amigo,

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.

Abraço

tectuba, obrigado pela dica. Estou começando a mexer em Java agora, e ainda estou descobrindo os segredos desse mundo fantastico.