publicclassListaDisciplina{privateCelulaprimeira;privateCelulaultima;privateCelulaaluno;privateinttotalDeDisciplinas;privatebooleanposicaoOcupada(intposicao){returnposicao>=0&&posicao<this.totalDeDisciplinas;}publicListaDisciplina(){}privateCelulapegaCelula(intposicao){if(!this.posicaoOcupada(posicao)){thrownewIllegalArgumentException("Posição não existe");}Celulaatual=primeira;for(inti=0;i<posicao;i++){atual=atual.getProxima();}returnatual;}//adiciona um objeto que pode ser qualquer coisapublicvoidadiciona(Objectdisciplina){if(this.totalDeDisciplinas==0){this.adicionaNoComeco(disciplina);}else{Celulanova=newCelula(disciplina);this.ultima.setProxima(nova);this.ultima=nova;this.totalDeDisciplinas++;}}publicvoidadiciona(intposicao,Objectdisciplina){if(posicao==0){// No começo.this.adicionaNoComeco(disciplina);}elseif(posicao==this.totalDeDisciplinas){// No fim.this.adiciona(disciplina);}else{Celulaanterior=this.pegaCelula(posicao-1);Celulanova=newCelula(anterior.getProxima(),disciplina);anterior.setProxima(nova);this.totalDeDisciplinas++;}}publicObjectpega(intposicao){returnthis.pegaCelula(posicao).getDisciplina();}publicvoidremove(intposicao){if(!this.posicaoOcupada(posicao)){//checa se existe a posiçãothrownewIllegalArgumentException("Posição não existe");}if(posicao==0){//checa se é a primeira da listathis.removeDoComeco();//se for remove do começo}elseif(posicao==this.totalDeDisciplinas-1){//senao, se a posição igual a ultima, remove do fimthis.removeDoFim();}else{Celulaanterior=this.pegaCelula(posicao-1);Celulaatual=anterior.getProxima();Celulaproxima=atual.getProxima();anterior.setProxima(proxima);// proxima.setAnterior(anterior); // Tem erro aquithis.totalDeDisciplinas--;}}publicinttamanho(){returnthis.totalDeDisciplinas;}publicbooleancontem(Objectdisciplina){Celulaatual=this.primeira;while(atual!=null){if(atual.getDisciplina().equals(disciplina)){returntrue;}atual=atual.getProxima();}returnfalse;}publicvoidadicionaNoComeco(Objectdisciplina){Celulanova=newCelula(this.primeira,disciplina);this.primeira=nova;if(this.totalDeDisciplinas==0){// caso especial da lista vaziathis.ultima=this.primeira;}this.totalDeDisciplinas++;}publicvoidremoveDoComeco(){if(!this.posicaoOcupada(0)){thrownewIllegalArgumentException("Posição não existe");}this.primeira=this.primeira.getProxima();this.totalDeDisciplinas--;if(this.totalDeDisciplinas==0){this.ultima=null;}}publicvoidremoveDoFim(){if(!this.posicaoOcupada(this.totalDeDisciplinas-1)){thrownewIllegalArgumentException("Posição não existe");}if(this.totalDeDisciplinas==1){this.removeDoComeco();}else{Celulapenultima=this.pegaCelula(totalDeDisciplinas-2);penultima.setProxima(null);this.ultima=penultima;this.totalDeDisciplinas--;}}publicStringtoString(){// Verificandose a Lista está vaziaif(this.totalDeDisciplinas==0){return"[]";}StringBuilderbuilder=newStringBuilder("[");Celulaatual=primeira;// Percorrendo até o penúltimo elemento.for(inti=0;i<this.totalDeDisciplinas-1;i++){builder.append(atual.getDisciplina());builder.append(",");atual=atual.getProxima();}// último elementobuilder.append(atual.getDisciplina());builder.append("]");returnbuilder.toString();}}
aqui esta o codigo da lista da disciplina
Douglas_Magno
o codigo da lista de aluno
publicclassListaAluno{privateAlunoprimeira;privateAlunoultima;privateinttotalDeAlunos;privatebooleanposicaoOcupada(intposicao){returnposicao>=0&&posicao<this.totalDeAlunos;}publicListaAluno(){}privateAlunopegaAluno(intposicao){if(!this.posicaoOcupada(posicao)){thrownewIllegalArgumentException("Posição não existe");}Alunoatual=primeira;for(inti=0;i<posicao;i++){atual=atual.getProxima();}returnatual;}//adiciona um objeto que pode ser qualquer coisapublicvoidadiciona(Stringaluno){if(this.totalDeAlunos==0){this.adicionaNoComeco(aluno);}else{Alunonova=newAluno(aluno);this.ultima.setProxima(nova);this.ultima=nova;this.totalDeAlunos++;}}publicvoidadiciona(intposicao,Stringaluno){if(posicao==0){// No começo.this.adicionaNoComeco(aluno);}elseif(posicao==this.totalDeAlunos){// No fim.this.adiciona(aluno);}else{Alunoanterior=this.pegaAluno(posicao-1);Alunonova=newAluno(anterior.getProxima(),aluno);anterior.setProxima(nova);this.totalDeAlunos++;}}publicStringpega(intposicao){returnthis.pegaAluno(posicao).getAlunos();}publicvoidremove(intposicao){if(!this.posicaoOcupada(posicao)){//checa se existe a posiçãothrownewIllegalArgumentException("Posição não existe");}if(posicao==0){//checa se é a primeira da listathis.removeDoComeco();//se for remove do começo}elseif(posicao==this.totalDeAlunos-1){//senao, se a posição igual a ultima, remove do fimthis.removeDoFim();}else{Alunoanterior=this.pegaAluno(posicao-1);Alunoatual=anterior.getProxima();Alunoproxima=atual.getProxima();anterior.setProxima(proxima);// proxima.setAnterior(anterior); // Tem erro aquithis.totalDeAlunos--;}}publicinttamanho(){returnthis.totalDeAlunos;}publicbooleancontem(Stringalunos){Alunoatual=this.primeira;while(atual!=null){if(atual.getAlunos().equals(alunos)){returntrue;}atual=atual.getProxima();}returnfalse;}publicvoidadicionaNoComeco(Stringalunos){Alunonova=newAluno(this.primeira,alunos);this.primeira=nova;if(this.totalDeAlunos==0){// caso especial da lista vaziathis.ultima=this.primeira;}this.totalDeAlunos++;}publicvoidremoveDoComeco(){if(!this.posicaoOcupada(0)){thrownewIllegalArgumentException("Posição não existe");}this.primeira=this.primeira.getProxima();this.totalDeAlunos--;if(this.totalDeAlunos==0){this.ultima=null;}}publicvoidremoveDoFim(){if(!this.posicaoOcupada(this.totalDeAlunos-1)){thrownewIllegalArgumentException("Posição não existe");}if(this.totalDeAlunos==1){this.removeDoComeco();}else{Alunopenultima=this.pegaAluno(totalDeAlunos-2);penultima.setProxima(null);this.ultima=penultima;this.totalDeAlunos--;}}publicStringtoString(){// Verificandose a Lista está vaziaif(this.totalDeAlunos==0){return"[]";}StringBuilderbuilder=newStringBuilder("[");Alunoatual=primeira;// Percorrendo até o penúltimo elemento.for(inti=0;i<this.totalDeAlunos-1;i++){builder.append(atual.getAlunos());builder.append(",");atual=atual.getProxima();}// último elementobuilder.append(atual.getAlunos());builder.append("]");returnbuilder.toString();}}
o codigo esta praticamente igual pois as duas listas estão separadas pois eu ainda não soube fazer a relação entre elas