Duvida Apostila Caelum sobre array

olá todos, tenho um metodo boolean contem(Funcionario f) na classe Empresa e tenho um arrayList de empregados do tipo Funcionario, e estou apanhando muito para percorrer o array e exibir a situação de cada funcionario cadastrado

[code]
public class Empresa {
private String nome;
private int cnpj;
private ArrayList empregado = new ArrayList();
private int cont = 0;

public ArrayList<Funcionario> getEmpregado() {
    return empregado;
}
public void adiciona(Funcionario f){
    empregado.add(f);
    this.cont++;
}
public void MostraEmpregados()
{
    for(int i = 0; i < empregado.size(); i++){
        if(empregado.get(i) != null){
            empregado.get(i).Mostra();  
        }
        else{
            break;
        }
        
      }
    System.out.println("Quantidade: " + cont);
}

public boolean contem(Funcionario f){
    for(int i = 0; i < empregado.size(); i++){
        if(empregado.get(i) == f){
               System.out.println("Funcionario Registrado");
           }
        else{
            System.out.println("Funcionario Não Registrado");
            //return false;
    }
       }
       return true;
       
   }
}[/code]

e tenho tbm na classe Funcionario uma variavel Situacao boolean q me retorna se true ou false e um metodo Mostra() q exibe as mensagens
soh q quando compilo nao consigo ligar cada situação a seu respectivo Funcionario, aparece assim

Nome: Bruno
Departamento: Compras
Salario: 1500.0
Ano: 2011
DEMITIDO

Nome: Tiago
Departamento: Vendas
Salario: 1700.0
Situação: ADMITIDO

Quantidade: 2
Funcionario registrado
Nao Funcionario

obrigado =p

Aquele break no loop do mostra empregado é pra que mesmo?

Pelo que eu entendi, você tem que chamar o método contem(Funcionario f) de dentro do if do metodo MostraEmpregado() - presta atenção na convenção de nomeação de métodos - passando empregado.get(i) como parâmetro. Coloca um return true caso o funcionário seja registrado e troca o return true no fim do método por um return false (caso todo o array seja percorrido sem que o funcionario seja encontrado)

Mas dessa forma seu código fica com um esforço de N² por ter um laço for encadeado, o que o torna mais lento.
ArrayList possui um método bem bacana chamado “contains”. Pesquise sobre ele e veja se nao seria mais fácil usá-lo.