Consultar objeto em um ArrayList e comparar atributo "nome"

Galera, estou com uma dúvida para resolver um método aqui. Poderiam me ajudar a como fazer?

A solicitação é: Consulta se o professor cujo nome é passado por parâmetro está no array.
Você deve percorrer a coleção obrigatoriamente usando iterator, e comparar o nome. Se encontrar, retorne a referência do objeto. Caso contrário, retorne false.

Tenho o código abaixo. Consegui até aí…

[code]public Professor consulta(String nome)
{
Iterator it = listaDeContatos.iterator();
while (it.hasNext()) {
Professor contato = it.next();

}  
return false;

} [/code]

Abs,

Onde está o arraylist?. Caso vc tenha um arraylist do Professor é usar o metodo contains (object) da classe Arraylist.

O exercício ta certo mesmo? Não da para um método retornar um Objeto Professor ou False. Ou retorna o professor se encontrar e null se não encontrar, ou retorna true/false. Até da para fazer com que retorne os dois, mas é mais complicado do que o nível do exercício, eu acho.

Enfim, pra cada professor da lista, você tem que pegar o nome e comparar com o nome enviado.
Pode ser como o alex falou aí em cima ou indo de um a um(como vc está fazendo)

contato.getNome().equals(nome) //compara o nome do contato com o enviado

Esse é o código da minha classe:

[code]
public class Cadastro
{
private ArrayList listaDeContatos;

// Construtor recebe o tamanho inicial do cadastro
public Cadastro(int capacidade)
{
	// crie o objeto ArrayList considerando que se o usuário
	// passou um valor negativo deve ser gerada uma exceção
	// IllegalArgumentException

	ArrayList objeto = new ArrayList(capacidade);

	if(capacidade < 0) {
		throw new IllegalArgumentException(); 
	}

}

public void insere(Professor p) {
	listaDeContatos.add(p);
}

public boolean insere(Professor p, int posicao) throws IndexOutOfBoundsException {
	int tamanhoArray = 0;
	tamanhoArray = listaDeContatos.size();

	if ((posicao < 0) && (posicao > tamanhoArray)){
		throw new IndexOutOfBoundsException();
		return false;
	}
	else {
		listaDeContatos.add(posicao, p); // Informant a posição que o objeto deverá ser add
		return true;
	}

}   

public boolean remove(String nome) {

	Iterator<Professor> it = listaDeContatos.iterator();  
	while (it.hasNext()) {  
		Professor contato = it.next();  
		if (contato.getNome().startsWith(nome)) {
			it.remove(); //Única forma de remover enquanto percorre
			return true;
		}
	}  
	return false;


}

// Consulta se o professor cujo nome é passado por parâmetro
// está no array.Você deve percorrer a coleção obrigatoriamente 
// usando iterator, e comparar o nome. Se encontrar, retorne a
// referência do objeto. Caso contrário, retorne false
public Professor consulta(String nome)
{
	Iterator<Professor> it = listaDeContatos.iterator();  
	while (it.hasNext()) {  
		Professor contato = it.next();  
		
	}  
	return false;
}

}[/code]