Implementei o equals na Classe Funcionario. Segue abaixo:
package Principal;
import java.util.ArrayList;
import funcionario.Funcionario;
public class TestaEquals {
public static void main(String[] args) {
Funcionario fun = new Funcionario("João", "Amoedo", "331.222.111-11", 3245.67f);
Funcionario fun2 = new Funcionario("Rodolfo", "Netto", "331.222.111-11", 3180.60f);
ArrayList<Funcionario> lista = new ArrayList<Funcionario>();
lista.add(fun);
lista.add(fun2);
for (Funcionario funcionarios : lista) {
if (fun.equals(fun2)) {
System.out.println("Os funcionários estão com o CPF igual!!!");
} else {
System.out.println(funcionarios);
System.out.println();
}
}
}
}
package funcionario;
public class Funcionario {
private String nome;
private String sobrenome;
private String cpf;
private float salario;
public Funcionario(String nome, String sobrenome, String cpf, float salario) {
this.nome = nome;
this.sobrenome = sobrenome;
this.cpf = cpf;
this.salario = salario;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public float getSalario() {
return salario;
}
public void setSalario(float salario) {
this.salario = salario;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSobrenome() {
return sobrenome;
}
public void setSobrenome(String sobrenome) {
this.sobrenome = sobrenome;
}
@Override
public boolean equals(Object referenciaGenerica) {
Funcionario outroFuncionario = (Funcionario) referenciaGenerica;
if (this.cpf != outroFuncionario.cpf) {
return false;
}
return true;
}
@Override
public String toString() {
return "Nome: " + this.nome + "\nSobrenome: " + this.sobrenome + "\nCPF: " + this.cpf + "\nSalário: " + this.salario;
}
}
Resultado:
Tudo ok?