Consultar objeto em um ArrayList e comparar atributo "nome"

3 respostas
juliomendes90

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í..
public Professor consulta(String nome)
	{
	Iterator<Professor> it = listaDeContatos.iterator();  
	while (it.hasNext()) {  
		Professor contato = it.next();  
		
	}  
	return false;
}

Abs,

3 Respostas

A

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

ErickRAR

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
juliomendes90

Esse é o código da minha classe:

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;
	}
}
Criado 20 de março de 2014
Ultima resposta 21 de mar. de 2014
Respostas 3
Participantes 3