Boa tarde, preciso implementar uma funcionalidade que pesquise contato numa agenda. Sou iniciante e tô com muitas dúvidas, pois o código já veio escrito e só preciso implementar isso mesmo.
Nesta classe é designado o método pesquisar:
public Contato pesquisarPorNomeIgual(String chavePesquisa) {
Contato contatoResultado = null;
for (Iterator iterator = contatos.iterator(); iterator.hasNext();) {
Contato contato = (Contato) iterator.next();
// comparar se o contato da lista possui o nome parecido com chave pesquisa
if(contato.getNome().compareTo(chavePesquisa) == 0)
contatoResultado = contato;
}
return contatoResultado;
}
Nesta outra eu preciso chamá-lo e fazer com que retorne na tela o usuário pesquisado (que é a que estou mexendo):
else if(opcao.compareTo("3") == 0) {
System.out.println("Digite o nome do contato desejado:");
String nomeTeclado = teclado.nextLine();
agenda.pesquisarPorNomeIgual(nomeTeclado);//aqui, coloquei para o sistema receber por parâmetro o nome digitado, mas após isso, o que fazer? não devia retornar sozinho?
}
Desde já, agradeço.
Assim o método de busca fica mais simples:
public Contato pesquisarPorNomeIgual(String chavePesquisa) {
for (Contato contato : contatos) {
// comparar se o contato da lista possui o nome parecido com chave pesquisa
if (contato.getNome().equals(chavePesquisa)) {
return contato;
}
}
return null;
}
E pra pesquisar, você só esqueceu de atribuir o resultado da busca à uma variável:
System.out.println("Digite o nome do contato desejado:");
String nomeDigitado = teclado.nextLine();
Contato encontrado = agenda.pesquisarPorNomeIgual(nomeDigitado);
if (encontrado != null) {
System.out.println("Nome: " + encontrado.getNome());
System.out.println("Idade: " + encontrado.getIdade());
System.out.println("Telefone: " + encontrado.getTelefone());
System.out.println("Outra coisa: " + encontrado.getOutraCoisa());
} else {
System.out.println("Contato não encontrado: " + nomeDigitado);
}
Perfeito, amigo, funcionou!
Mas, como falei, sou iniciante, e fiquei em dúvida em um aspecto
Por que se cria uma variável com o tipo de uma classe? ( Contato encontrado = ...
)
Por que não é utilizado um tipo primitivo?
Valeu
Por que você cria classes?
Para a partir dessas classes criar objetos que representem alguma coisa, no seu caso um contato.
Você já estudou programação orientada à objetos?
Precisa estudar, senão não faz sentido programar com Java.
Java possui os seguintes tipos primitivos:
byte, boolean ( 8 bits )
short, char ( 16 bits )
int, float ( 32 bits )
long, double ( 64 bits )
Algum deles tem condições de representar um contato e seus atributos?
2 curtidas
Obrigado pelos esclarecimentos!