Estou tentando da um "set" em um ArrayList meu, a sintaxe correta seria " list.set(0,variável); ". Só que este valor int do índice do arraylist quero passar através de uma variável, bom postarei o código abaixo para melhor entendimento. Se trata de um pequeno programa para gerenciar uma clínica odontológica e no caso ali irei atualizar os dados do paciente.
publicvoidsetPaciente(Stringrg){Pacientep=null;for(inti=0;i<listaPaciente.size();i++){p=(Paciente)listaPaciente.get(i);if(p.getRg().equals(rg)){// entrada dos dados ocultei para diminuir o códigothis.nome=nome;this.rg=rg;this.endereco=endereco;this.telefone=telefone;this.profissao=profissao;this.idpaciente=idpaciente;listaPaciente.set(i,newPaciente(nome,rg,endereco,telefone,profissao,idpaciente));}}}
lairylopes
Então vinigodoy já tentei também desta maneira e não foi, aparece o seguinte erro:
[color=red]no suitable constructo found for Paciente (java.lang.String,java.lang.String) constructor Paciente.Paciente(java.lang.String,java.lang.String) is not applicable;[/color]
ViniGodoy
Poste sua classe paciente. Mas aparentemente você não tem um construtor que aceite tantos parâmetros.
lairylopes
[color=red]EDITED.[/color] [color=#444444]Meu erro era por questão de parametros do construtor ao ArrayList, o código que alterei agora funciona, caso alguém esteja com a mesma dúvida. [/color]
importjava.util.*;importjava.util.ArrayList;publicclassPaciente{Stringnome,rg,dtnasc,endereco,telefone,profissao;intidpaciente;ArrayList<Paciente>listaPaciente=newArrayList<Paciente>();Scannerinput=newScanner(System.in);publicPaciente(Stringnome,Stringrg,Stringdtnasc,Stringendereco,Stringtelefone,Stringprofissao){this.nome=nome;this.rg=rg;this.dtnasc=dtnasc;this.endereco=endereco;this.telefone=telefone;this.profissao=profissao;this.idpaciente=idpaciente;}publicPaciente(){}publicvoidcadastrarPaciente(){Pacientex=newPaciente(nome,rg);listaPaciente.add(x);System.out.println(listaPaciente.get(0).nome);System.out.println(listaPaciente.get(0).rg);}publicvoidbuscarCliente(Stringrg){Pacientep=null;for(inti=0;i<listaPaciente.size();i++){p=(Paciente)listaPaciente.get(i);if(p.getRg().equals(rg)){System.out.println(p.getNome());System.out.println(p.getRg());}}}publicvoidsetPaciente(Stringrg){Pacientep=null;for(inti=0;i<listaPaciente.size();i++){p=(Paciente)listaPaciente.get(i);if(p.getRg().equals(rg)){//entrada dos dadosSystem.out.println("Digite o nome do paciente :");nome=input.next();System.out.println("Digite o rg :");rg=input.next();System.out.println("Digite o endereco completo :");endereco=input.next();System.out.println("Digite a data de nascimento :");dtnasc=input.next();System.out.println("Digite a profissão :");profissao=input.next();this.nome=nome;this.rg=rg;this.endereco=endereco;this.telefone=telefone;this.profissao=profissao;this.idpaciente=idpaciente;listaPaciente.set(i,newPaciente(nome,rg,dtnasc,endereco,telefone,profissao));}}}publicvoidexcluirCliente(Stringrg){Pacientep=null;for(inti=0;i<listaPaciente.size();i++){p=(Paciente)listaPaciente.get(i);if(p.getRg().equals(rg)){charop='S';System.out.println(p.getNome());System.out.println("Você irá excluir o cadastro de"+p.getNome()+" - Tem certeza <S>im / <N>ão");op=input.next().charAt(0);if(op=='S'||op=='s'){listaPaciente.remove(i);System.out.println("Cadastro excluído com sucesso.");}}}}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetRg(){returnrg;}publicvoidsetRg(Stringrg){this.rg=rg;}publicStringgetEndereco(){returnendereco;}publicvoidsetEndereco(Stringendereco){this.endereco=endereco;}publicStringgetTelefone(){returntelefone;}publicvoidsetTelefone(Stringtelefone){this.telefone=telefone;}publicStringgetProfissao(){returnprofissao;}publicvoidsetProfissao(Stringprofissao){this.profissao=profissao;}}