comparação de objetos no arrayList

3 respostas
Dayson_Rodrigues

bom galera, estou com um método que que salva um funcionario no banco, só que não estou conseguindo fazer uma comparação daquele objeto que estou salvando para que possivelmente possa cair em uma exceção.

OBS: queria também usar o .trim() p/ não permitir que o usuário não insira vários espaços.

*codigo
public void guardar() {

GestaoFuncionario servicos = new GestaoFuncionario(repositorio.getFuncionario());
	
		try {
			if(listaFuncionario.contains(funcionario.getFuncNome())){
				MensagemUtil.AdicionaMensagem(FacesMessage.SEVERITY_ERROR, "Já possui um funcionário com o mesmo nome");
			}
				servicos.salvar(funcionario);
				funcionario = new Funcionario();
				MensagemUtil.AdicionaMensagem(FacesMessage.SEVERITY_INFO, "Funcionario efetuado com sucesso!!!");			
				
		} catch (RegraNegocioException e) {
			MensagemUtil.AdicionaMensagem(FacesMessage.SEVERITY_INFO, e.getMessage());
		}
		
	}

3 Respostas

Rafael_Romao_Bertoni

a lista é uma string???

pq vc nao percorre a lista com foreach?

Dayson_Rodrigues

a lista é de funcionarios, no meu Bean quero verificar se o nome que estou atribuindo contém na lista para não ficar com 2 nomes iguais.

H

@Dayson_Rodrigues, você pode sobrescrever o equals de sua classe Funcionario:

import java.util.ArrayList;
import java.util.List;


class Funcionario {

	private String nome;

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@Override
	public boolean equals(Object funcionario) {

		if (funcionario instanceof Funcionario) {
			return nome.equals(((Funcionario) funcionario).getNome());

		}
		return super.equals(funcionario);
	}

}

public class TesteFuncionarios {

	public static void main(String[] args) {
		
		List<Funcionario> funcionarios = new ArrayList<Funcionario>();
		
		Funcionario jose = new Funcionario();
		jose.setNome("Jose");
		
		Funcionario joseDuplicado = new Funcionario();
		joseDuplicado.setNome("Jose");
		
		funcionarios.add(jose);
		
		if(funcionarios.contains(joseDuplicado)){
			// System.out.println("Funcionario ja existe");
		}
		
	}
}

Abcs!

Criado 1 de abril de 2016
Ultima resposta 1 de abr. de 2016
Respostas 3
Participantes 3