Foros del Web » Programación para mayores de 30 ;) » Java »

No permitir repetir datos en arreglo de java

Estas en el tema de No permitir repetir datos en arreglo de java en el foro de Java en Foros del Web. Que tal, estoy haciendo este proyecto, pero ahora me piden no repetir datos al usuario en el arreglo, pensaba meter un if después de la ...
  #1 (permalink)  
Antiguo 09/09/2014, 16:13
 
Fecha de Ingreso: noviembre-2013
Mensajes: 3
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta No permitir repetir datos en arreglo de java

Que tal, estoy haciendo este proyecto, pero ahora me piden no repetir datos al usuario en el arreglo, pensaba meter un if después de la validación del tamaño del arreglo validando espacio pero no sé como, mi otra idea era crear un método en la clase ArregloEnteros que validara repetición y en el main mandarlo a llamar pero me tiró error, alguna idea, dejó las dos clases que importan, las otras dos son del ordenamiento del arreglo y la de teclado que hace referencia para que el usuario introduzca el dato.

Espero me puedan guiar.

Código:
public class TestArreglo {
    
  public static int Menu() {
   int opcion;
   do{
      opcion = Teclado.entero("1.Insertar dato\n2.Listar\n3.Buscar Dato\n4.Actualizar dato\n5.Borrar dato\n6.Ordenar\n7.Salir\n");
      if (opcion <1 || opcion>7)
         System.out.println("Opcion no valida");
      }while(opcion <1 || opcion>7);
      return opcion;
   }
  public static void main(String []args){
   //variables
   int dato,max,opcion,pos;
   ArregloEnteros miarreglo;
   max=Teclado.entero("Dame el tamaño del arreglo:");;
   miarreglo = new ArregloEnteros(max);
   
   do{
   opcion=Menu();
   switch (opcion) {
          case 1:
              if (miarreglo.validaEspacio()) {
                 dato=Teclado.entero("Dame el dato:");
                 miarreglo.insertar(dato);
                if()//Aqui quería validar que no se repitiera el dato
                {
                    System.out.println("Error, no se pueden repetir datos");
              } }else {
                  System.out.println("Error no hay espacio");
              }
              break;
              
          case 2:
               miarreglo.listar();
              break;
              
          case 3:
             pos=miarreglo.buscarDato(Teclado.entero("Dato a buscar: "));
             if (pos != -1)
                for(int i=0;i<pos+1;i++){
                    miarreglo.listar(pos);
                }
             else 
                 System.out.println("Error, no existe el dato");
          break;
          case 4:
                dato=Teclado.entero("Dame el dato que quieres actualizar: ");
                pos=miarreglo.buscarDato(dato);
                if(pos != -1){
                   miarreglo.actualizar(pos);
                }
                else 
                   System.out.println("No se encontro el dato");
                break;               
           case 5:
               dato=Teclado.entero("Dato a borrar: ");
               pos= miarreglo.buscarDato(dato);
               if(pos != -1){
                  miarreglo.borrar(pos);
               }
               else 
                  System.out.println("No se encontro el dato");
               break; 
          case 6:
               miarreglo.Ordenar();
          break;
          
          case 7:
          break;
          
          default:
              System.out.println("Opcion incorrecta");
              break;
      }
    }while(opcion!=7);
   
  }
}
y la otra clase

Código:
 public class ArregloEnteros 
   {
    //atributos 
    private int[] arreglo;
    private int[] auxiliar;
    private int indice;
      
    //constructor
    public ArregloEnteros(int max){
        arreglo =new int[max];
        auxiliar =new int[max];
        indice = -1;
    }
    public boolean validaEspacio(){
    return(indice<arreglo.length-1);
    }
    public void insertar(int dato){
        indice ++;
        arreglo[indice]=dato;
    }
    public void listar(){
        int i;
        for(i=0;i<=indice;i++){
            System.out.println(arreglo[i]);       
        }
    }
    public void listar(int pos){
        System.out.println(arreglo[pos]);
      
    public int buscarDato(int dato){
      int j=0;
      for(int i=0;i<=indice;i++){
        if(arreglo[i]==dato){
           auxiliar[j]=i;
           j++;
        }
       }
      return j-1;
      }
      public void actualizar (int pos){
      for(int i=0;i<=pos;i++){
          arreglo[auxiliar[i]]=Teclado.entero("Introduzca el dato nuevo: ");
       }
      }
      public int borrar (int pos){
      for(int i=0;i<=pos;i++){
          arreglo[auxiliar[i]]=arreglo[indice];
          indice --;
       }
       return pos;
      }
      
      public void Ordenar(){
          Ordenamiento ordena=new Ordenamiento();
          ordena.SortIntercambio(arreglo, indice);     
    }
}
Gracias.

Etiquetas: arreglo, clase, permitir, repetir, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:39.