Pesquisa Array de Objeto

3 respostas
A
e ai pessoal td blz intao estou com uma duvida em como implementar uma consulta por nome, tenho um array de Objetos e preciso pesquisar o nome que o Usuario Digitar, meu codigo esta assim:
case 2: System.out.println("Autor do Livro que Voce deseja Pesquisar");
					String nome = Console.readString();
					for(int i=0;i<Li.length;i++){
						if(Li[i].getautor() == nome) {
							System.out.println("<<Codigo de Identificacao>>\n"+Li[i].getId());	
							System.out.println("<<Nome>>\n"+Li[i].getNome());
							System.out.println("<<Autor>>\n"+Li[i].getautor());
							System.out.println("<<Codigo ISBN>>\n"+Li[i].getcodISBN());
							System.out.println("<<Quantidade Disponivel>>\n"+Li[i].getQuantidade());
							System.out.println("<<Valor R$>>\n"+Li[i].getValor()+"\n\n");
						}else
							System.out.println("ERRO!!, AUTOR NAO ENCONTRADO!!");

eu li algo sobre Teoria de Hash, mapa de Hash, mais nao concegui implementar se alguem puder ajudar.
obrigado.

3 Respostas

BrunoBastosPJ
if(Li[i].getautor().equals(nome))
A

eu fiz isso mais agora ele esta mostrando um erro logo apos de mostrar o nome encontrado

Exception in thread "main" java.lang.NullPointerException
        at Controle.consultaLivro(Controle.java:187)
        at Controle.menuConsulta(Controle.java:42)
        at Controle.menu(Controle.java:30)
        at Controle.main(Controle.java:7)
Press any key to continue...
AQUI MEU METODO COMPLETO.
public static void consultaLivro(Livro[] Li) {
		System.out.println("[1] - Pelo Codigo de Identificação. \n[2] - Pelo Autor.");
		int op = Console.readInteger();
		switch (op){
			case 1: System.out.println("Digite o Codigo de Identificacao do Livro");
					int id = Console.readInteger();
					int x = verifCodigo(Li,id);
					if (x!= -1){
						System.out.println("<<Codigo de Identificacao>>\n"+Li[x].getId());	
						System.out.println("<<Nome>>\n"+Li[x].getNome());
						System.out.println("<<Autor>>\n"+Li[x].getautor());
						System.out.println("<<Codigo ISBN>>\n"+Li[x].getcodISBN());
						System.out.println("<<Quantidade Disponivel>>\n"+Li[x].getQuantidade());
						System.out.println("<<Valor R$>>\n"+Li[x].getValor()+"\n\n");
					}else
						System.out.println("ERRO!!, CODIGO NAO ENCONTRADO!!!");
					break;	
			case 2: System.out.println("Autor do Livro que Voce deseja Pesquisar");
					String nome = Console.readString();
					for(int i=0;i<Li.length;i++){
						if(Li[i].getautor().equals(nome)){
							System.out.println("<<Codigo de Identificacao>>\n"+Li[i].getId());	
							System.out.println("<<Nome>>\n"+Li[i].getNome());
							System.out.println("<<Autor>>\n"+Li[i].getautor());
							System.out.println("<<Codigo ISBN>>\n"+Li[i].getcodISBN());
							System.out.println("<<Quantidade Disponivel>>\n"+Li[i].getQuantidade());
							System.out.println("<<Valor R$>>\n"+Li[i].getValor()+"\n\n");
						}else
							System.out.println("ERRO!!, AUTOR NAO ENCONTRADO!!");
					}break;	
			default:System.out.println("ERRO!!, OPCAO NAO EXISTE!!");
		}
		
	}
A

problema resolvido

Criado 12 de junho de 2006
Ultima resposta 13 de jun. de 2006
Respostas 3
Participantes 2