coloca o código da declaração do ArrayList e do Main entre as tags <<code>>
[]´s
berg.pb
Cara, se talvez vc postar o código, fique mais fácil de entender, blz?!
Abraços
DirceuSobrinho
será q o ArrayList não é uma variavel local, ai qdo vc chama o metodo remover ai o array tá vazio!
tem como vc posta o codigo nao? fica melhora te ajudarem!
jgandolfi
Passa o código para vermos, porém pode ser que você tenha criado a variável no método tenta criar a variável como de classe e não esqueça que deve ser estática já que é usado pelo man.
J
joanes
publicclassProfessorextendsAcademico{ArrayListprofessores=newArrayList();EstruturaProfessorobjProf;publicvoidcadastrarProfessor(EstruturaProfessordados){professores.add(dados);}publicvoidexcluirProfessor(StringnomeExcluir){for(intj=0;j<professores.size();j++){objProf=(EstruturaProfessor)professores.get(j);if(objProf.nome.equals(nomeExcluir))professores.remove(objProf);}}publicclassMain{publicstaticvoidmain(String[]args){while(opcao!=0){System.out.println("1. Cadastrar Professor");System.out.println("2. Excluir Professor");System.out.println("0. Sair");System.out.println("Digite a opcao desejada: ");opcao=leOpcao.nextInt();switch(opcao){case1:cadastraProf();break;case2:excluirProf();break;}}}publicstaticvoidcadastraProf(){Scannerprof=newScanner(System.in);EstruturaProfessorep=newEstruturaProfessor();ProfessorprofDados=newProfessor(" ",0," "," "," ");System.out.println("Digite o nome do professor: ");profDados.setNome(prof.nextLine());ep.nome=profDados.getNome();System.out.println("Digite o registro universitário do professor: ");profDados.setRU(prof.nextLine());ep.ru=profDados.getRU();profDados.cadastrarProfessor(ep);}publicstaticvoidexcluirProf(){StringnomeExcluir;ScannerprofExcluir=newScanner(System.in);Professorpe=newProfessor(" ",0," "," "," ");System.out.println("Digite o nome do professor a ser excluído: ");nomeExcluir=profExcluir.nextLine();pe.excluirProfessor(nomeExcluir);}}
DEI UMA SIMPLIFICADA NO CÓDIGO PQ TÁ COM MUITA COISA.... MAS O BÁSICO DO PROBLEMA TÁ AE...
CRIO UM ARRAYLIST NA CLASSE PROFESSOR. ATRAVÉS DA MAIN EU INSIRO OS DADOS, MAS QUANDO VOU TENTAR EXCLUIR PELA MAIN, O ARRAY PARECE ESTAR VAZIO.
VALEU GALERA
B
Bruno_Laturner
Simples, você não está mantendo o objeto professor instanciado, ele só está existindo dentro do escopo dos métodos cadastraProf e excluirProf quando ele deveria existir fora deles, e esses métodos só usarem o objeto.
J
joanes
Valeuuuuu, era isso mesmo…
Coisas de iniciante
Valeuuuu
J
joanes
Putz, agora fui testar direito...
Deu problema no cadastrar.... Mesmo instanciando o objeto professor uma vez só na classe Main, a cada vez que eu chamo o método cadastrar na Main parece que o Array de professores é iniciado.
Tá assim:
Na classe Main:
.
.
.
staticEstruturaProfessorep=newEstruturaProfessor();staticProfessorobjProf=newProfessor(" ",0," "," "," ");staticScannerscanProf=newScanner(System.in);staticStringnomeExcluir;publicstaticvoidcadastraProf(){System.out.println("Digite o nome do professor: ");objProf.setNome(scanProf.nextLine());ep.nome=objProf.getNome();System.out.println("Digite o registro universitário do professor: ");objProf.setRU(scanProf.nextLine());ep.ru=objProf.getRU();objProf.cadastrarProfessor(ep);}publicstaticvoidexcluirProf(){System.out.println("Digite o nome do professor a ser excluído: ");nomeExcluir=scanProf.nextLine();objProf.excluirProfessor(nomeExcluir);}
Na classe Professor:
finalinttamanhoArray=2;publicEstruturaProfessorprofessores[]=newEstruturaProfessor[tamanhoArray];publicEstruturaProfessorobjProf;inti=0;...publicvoidcadastrarProfessor(EstruturaProfessordados){if(i<tamanhoArray){professores[i]=dados;i++;}}publicvoidexcluirProfessor(StringnomeExcluir){for(intj=0;j<i;j++){objProf=professores[j];System.out.printf("AAAA-->>> %s \n",objProf.nome);if(objProf.nome.equals(nomeExcluir)){professores[j]=null;System.out.println("Professor EXCLUÍDO");}elseSystem.out.printf("Professor na lista: %s ",objProf.nome);}}