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]