Código Java de uma lista desenvolvido em sala de aula que adiciona um objeto numa lista, busca, remove e associa a outro objeto. Este trata-se de uma exemplificação de uma lista de professor e algumas disciplinas. este código adiciona professor de duas formas, geteres e seteres ou construtor, busca o professor pela matricula, remove-o e associa disciplinas a professor. (O código as classes Professor, Disciplina e Lista)
Obs: O interessante é observar os exemplos dos métodos que constam no código.
//Data: 31.10.2012
//Função: Realizar adicão, busca, listagem e remoção de um objeto e associe a outro
package br.main;
import br.dominio.Disciplina;
import br.dominio.Professor;
import java.awt.HeadlessException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
/**
*
* @author Thiago
*/
public class Lista {
public static void main(String[] args){
//cria uma lista de professor
ArrayList<Professor> professores = new ArrayList<Professor>();
Professor p = criarProfessor();
p.setDisciplina(new ArrayList<Disciplina>());
p.getDisciplina().add(criarDisciplina()); //criou e add novo professor
p.getDisciplina().add(criarDisciplina()); //criou e add outro professor
professores.add(p); //add na lista
//outra forma para criar outro professor
Professor p2 = criarProfessor();
p2.setDisciplina(new ArrayList<Disciplina>());
p2.getDisciplina().add(criarDisciplina()); //criou e add novo professor
p2.getDisciplina().add(criarDisciplina()); //criou e add outro professor
professores.add(p2); //add na lista
//inserindo um professor com as disciplinas com o construtor
Professor p3 = new Professor("Taynah", "8484"); //cria o professor usando o construtor
p3.setDisciplina(new ArrayList<Disciplina>());
Disciplina d1 = new Disciplina("010", "Direito"); //cria a disciplina usando o construtor
Disciplina d2 = new Disciplina("012", "Enfermagem"); //cria a disciplina usando o construtor
p3.getDisciplina().add(d1); //associa o professor a materia
p3.getDisciplina().add(d2); //associa o professor a materia
//fim da insersão do novo prof e disciplina
professores.add(p3); //add na lista
listaProfessores(professores);
String matProf = JOptionPane.showInputDialog("Informe a matricula do professor:");
listarDisciplinas(matProf, professores); //vai retornar a lista de disciplina do professor
String matRem = JOptionPane.showInputDialog("Informe a matricula do professor a ser removido:");
removerProfessor(matRem, professores); //vai remover o professor segundo a matricula
listaProfessores(professores); //mostra a lista de professor
} //fim do main
/*
* metodo para criação de um professor
*/
public static Professor criarProfessor(){
String nome = JOptionPane.showInputDialog("Professor:");
String matricula = JOptionPane.showInputDialog("Matricula:");
return new Professor (nome, matricula);
} //fim da função
/*
*metodo para criação de um Disciplina
*/
public static Disciplina criarDisciplina(){
String nome = JOptionPane.showInputDialog("Materia:");
String codigo = JOptionPane.showInputDialog("Codigo:");
return new Disciplina (codigo, nome);
} //fim da função
/**
* Metodo que lista os professores cadastrados.
*/
public static void listaProfessores(ArrayList<Professor> lista){
if (!lista.isEmpty()){ //verifica se a lista está vazia
String mensagem = "";
for (Professor p: lista) { //percorre a lista de professores
mensagem += p.getNome() + "\n";
for(Disciplina d: p.getDisciplina()){ //mostra a disciplina do professor em questão
mensagem += " - " + d.getNome() + "\n";
}
}
JOptionPane.showMessageDialog(null, mensagem);
} //fim do if
} //fim da função
/*
* Método que lista as disciplinas do professor
*/
public static void listarDisciplinas(String cpf, ArrayList<Professor> lista){
for (Professor p : lista) {
if(p.getMatricula().equals(cpf)){
String mensagem = " ";
for (Disciplina d : p.getDisciplina()) {
mensagem += d.getCodigo() + " - " + d.getNome();
}
JOptionPane.showMessageDialog(null, mensagem);
} //fim do if
} //fim do for
} //fim da funcao
/*
* Metodo para consulta de professor por matricula
*/
public static Professor buscarProfessor(String matricula, ArrayList<Professor> lista){
if(!lista.isEmpty()){
for (Professor p : lista) {
if(p.getMatricula().equals(matricula))
return p;
}
} //fim do if
return null;
} //fim da função
/**
* Metodo para remover um professor
*/
public static void removerProfessor(String matricula, ArrayList<Professor> lista){
Professor p = buscarProfessor(matricula, lista); //crio uma variavel para receber o professor da função
if(p !=null)
lista.remove(p);
} //fim da funcao
} //fim da classe
import java.util.ArrayList;
import java.util.Objects;
/**
*
* @author Thiago
*/
public class Professor {
private String matricula;
private String nome;
private ArrayList<Disciplina> disciplina; //cria uma lista do tipo Disciplina
public Professor() { } //este construtor vazio vai permitir instanciar o objeto noutra classe
//vai instanciar direto as variaveis - metodo construtor
public Professor (String nome, String matricula){
this.nome = nome;
this.matricula = matricula;
}
public ArrayList<Disciplina> getDisciplina() {
return disciplina;
}
public void setDisciplina(ArrayList<Disciplina> disciplina) {
this.disciplina = disciplina;
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
//equals -> vai verificar se objetos da mesma classe são iguais
@Override
public boolean equals(Object outroProfessor) {
return matricula == ((Professor) outroProfessor).getMatricula();
}
} //fim da classe
/**
*
* @author Thiago
*/
public class Disciplina {
private String codigo;
private String nome;
public Disciplina() { } //este construtor vazio vai permitir instanciar o objeto noutra classe
//vai instanciar direto as variaveis
public Disciplina (String codigo, String nome){ //método construtor
this.nome = nome;
this.codigo = codigo;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
//método que que associa o codigo a disciplina
public boolean equals(Object outraDisciplina) {
return codigo == ((Disciplina) outraDisciplina).getCodigo();
}
} //fim da classe