Dívida sobre as classe de verificação

Boa Noite!..

Eu estou com uma classe ListaDePacientes

Tem uma parte chamada contem pacientes que verifica se o paciente esta cadastrado e retorna true ou false

public boolean contemPaciente(Paciente paciente){
	for (int i = 0; i < this.totalDePacientes; i++){
		if (paciente.equals(this.pacientesLista[i])){
				return true;
		}
	}
	return false;
}

======================
Esta classe cadastra os pacientes e depois verifica se esta cadastrado determinado paciente.
Mas oque está acontecendo que as duas respostas estão retornando com false…
A primeira não teria que retornar como true já que o paciente se encontra na lista e somente a segunda resposta que retornaria com false…

Peço a ajuda de vocês eu verifiquei que o valor booleano começa com valor nulo não sei de isso tem haver sobre a resposta que esta retornando…

public class TesteChecarPacienteNaLista {
public static void main (String [] args){
Paciente p1 = new Paciente();
Paciente p2 = new Paciente();
Paciente p3 = new Paciente();

	p1.setNome("João");
	p1.setIdade("35");
	p2.setNome("Maria");
	p2.setIdade("28");
	p3.setNome("Ricardo");
	p3.setIdade("25");
	
	ListaDePacientes lista = new ListaDePacientes();
	lista.adicionaFim(p1);
	lista.adicionaFim(p2);
	lista.adicionaFim(p3);
	
	System.out.println(lista.contemPaciente(p1));
	
	Paciente p4 = new Paciente();
	p4.setNome("Sandra");
	p4.setIdade("27");
	
	System.out.println(lista.contemPaciente(p4));
	
}

}