Ajuda com Listas

for(int i=0;i<n; i++){
		System.out.print("Entre com o nome:");
		String name = sc.nextLine();
	     sc.nextLine();
		System.out.print("Entre com o cpf");
		long cpf = sc.nextLong();
		
		if(list.contains(cpf)){//NÂO DA CERTO
			System.out.print("Este cpf ja existe");
		}else{
			list.add(new ListaCpf(cpf, name));	
	}}
}

}
como faço pra checar se o cpf ja existe?

Envia o código todo.

Muda a declaração do CPF de long para String.
Um CPF não é um valor numérico, até porque ele pode começar com zero.

1 curtida

list.add(new ListaCpf(cpf, name));
Sua lista é do tipo ListaCpf, correto?

E no contains você está passando um long. Isso vai dar false.

Soluções:

  1. Implementar seu próprio método para verificar se o CPF tá na lista iterando pelos elementos.
  2. Passar uma instância de ListaCpf para o método contains. (A classe ListaCpf precisa implementar equals())

ListaCpf é um nome estranho para essa classe. De acordo com os atributos não seria melhor “Pessoa”?

1 curtida