AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

quarta-feira, 31 de outubro de 2012

Exemplo de adição, remoção, busca, listagem e associação de objetos numa lista.

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.
//Autor: Thiago Campos
//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


package br.dominio;

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


package br.dominio;

/**
 *
 * @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


Nenhum comentário:

Postar um comentário