Fazer busca dentro de um array [RESOLVIDO]

Bom galera
ah minha dúvida é boba, eu até consigo fazer, mas não fica mto bom
eu tenho um array e preencho ele com números.
Então quero digitar um número e quero fazer uma busca dentro desse array, para ver se esse número existe …

segue o código [code]import java.util.Arrays;

public class NovoArray {
	protected int[]a;
	int indice=0;
	
	NovoArray(int tamanho){
	a = new int[tamanho];
	}
	
	
	public int getIndice(){
		return indice;
	}
	
public void addItem(int numero){
	if(getIndice()<a.length){
	a[getIndice()] = (int)(numero);
	indice++;
	}
	else{
		System.out.println("Array esta cheio e não podem ser adicionados mais itens!");
	}
}

public void removeItem(){
		indice=indice-1;
	}
		
public boolean getListaCheia(){
	if(getIndice()>a.length){
		return true;
		}
	else{
		return false;
		}
	}

public int mostraMaior(){
	int maior=a[0];
	for (int i=0; i<a.length;i++)
		if (maior<a[i])
			maior=a[i];
		return maior;
}

public int mostraMenor(){
	int menor=a[0];
	for (int i=0; i<a.length;i++)
		if (menor>a[i])
			menor=a[i];
		return menor;
	}

public int mostraUltimo(){
	return a[getIndice()];
}
	
public int getTamanho(){
	return (int)(a.length);	
	}

public int getValor(int posicao){
	return a[posicao];

 }

public void procuraElemento(int elemento){
	for (int i=0; i<getTamanho();  i++)
		   if(getValor(i)==elemento){
			   System.out.println("existe");
		   }
		   else{
			   System.out.println("nao existe");
		   }
}


}//ultima chave

[/code]

agora da aplicação

[code]import java.util.Scanner;

public class AplicNovoArray {
	
	public static void main(String[] args) {
	  Scanner entrada;
	  entrada = new Scanner(System.in);	
	  int t,escolha,item,repetir,elemento;
	  System.out.println("Digite o valor do tamanho do array:");
	  t = entrada.nextInt();
	  NovoArray cc=new NovoArray(t);
	 
	 do{ System.out.println("Menu: \n 1-Inserir Item \n 2-Remover Item \n 3-Mostrar Ultimo Item do Array \n 4-Mostrar todos Itens \n 5-Mostrar Maior \n 6-Mostrar Menor \n 7-Buscar Elemento \n 8-Mostra tamanho array \n 9-Sair ");
	  escolha = entrada.nextInt();
	  switch(escolha){
	  
	  case 1: 
		  do{
		  			if(!cc.getListaCheia()){
		  				System.out.println("Digite o valor que deseja inserir no array");
		  				item = entrada.nextInt();
		  				cc.addItem(item);
		  			}			  	
		  		System.out.println("Deseja inserir outro item? 1-Sim 2-Nao");
		  		repetir = entrada.nextInt();
	  			
	  		}while(repetir==1);
	  			break;
	  			
	  case 2: System.out.println("Sera removido o ultimo item da lista...");
	  			cc.removeItem();
	  			break;
	  			
	  case 3: System.out.println("O ultimo item do array é:"+cc.mostraUltimo());
	  			
	  			break;
	  			
	  case 4:for (int i=0; i<cc.getTamanho();  i++){
		   		System.out.print(cc.getValor(i)+" ");}
	  			System.out.println("");
	  			break;
	  			
	  case 5: System.out.println("Maior valor é:"+cc.mostraMaior());
	  			break;
	  			
	  case 6: System.out.println("Menor valor é:"+cc.mostraMenor());
	  			break;
	  case 7: System.out.println("Digite o numero pelo qual deseja procurar: ");
	  			elemento = entrada.nextInt();
	  			cc.procuraElemento(elemento);
	  			break;
	  case 8: System.out.println("Tamanho array:"+cc.getTamanho());
	  			}
	 }while(escolha!=9);
	  
}

}
[/code]

ele faz a busca
mas por exemplo, se eu tenho um array de 3 posições
se o número existir, ele exibe EXISTE e na outras 2 posições aparece NAO EXISTE

assim é mais elegante

public boolean contains(int elemento){ for (int num : a) { if(num==elemento){ return true; } } return false; }
vai buscar, se encontrar return true e para de buscar, se não encontrar ate acabar a lista, retorna false

ai se quiser imprimeir vc simplismente pode fazer algo como

if(contains(numero)) { System.out.println("existe"); } else { System.out.println("nao existe"); }

Isso é porque estás a imprimir para todas as posições.

 public void procuraElemento(int elemento){  
       boolean exist = false; //vamos assumir que não existe
       for (int i=0; i<getTamanho();  i++)  
               if(getValor(i)==elemento){  
                    exist = true; //existe
                    break; //encontrou, não precisa de procurar mais
               }  
       }
       if (existe) {
               System.out.println("existe");     
      } else {
               System.out.println("não existe");           
     }
 
} 

valeu PMLM e Lavieri teste dos 2 jeitos e deu certo :wink:
imprimindo do jeito que eu quero !

agora tem outro problema :?

eu não consigo fazer ele mostrar o último elemento digitado
se eu fizer um array de 5 posições, e só digitar 3 números, ele teria que mostrar o último número digitado
e não a última posição da matriz , que no caso esta vazia

Ele está a mostrar a posição a seguir ao último número digitado.

public int mostraUltimo(){ if (indice == 0){ // não existem items. return 0; } return a[indice - 1]; }

Já agora, no mostraMaior e mostraMenor deves percorrer o array até índice e não até ao fim.

a minha lógica estava errada
do meu jeito eu teria que colocar como indice= -1 e não indice=0
para ele fazer aparecer o último número
e o indice++ estaria no começo da expressão

vlw cara !

eu sou mto ruim com arrays :frowning: