Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/01/2014, 04:33
SilverDante
 
Fecha de Ingreso: diciembre-2013
Mensajes: 36
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: Optimizar código

Gracias, por lo menos ahora hay un "for" menos, de este modo el código se ha quedado de este modo:

Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package classarray;

import java.util.Scanner;

/**
 *
 * @author Joan
 */
public class ClassArray {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner teclado=new Scanner(System.in);
//variables
int opcion;
int [] v1;
v1 = new int[6];



/*-------------------------------------------------------------------------*/ 
do{

System.out.println("Introduce una opción del menu.");
verMenu();
opcion=teclado.nextInt();


switch(opcion){

case 1: 
leerArray(v1); 
break;

case 2: 
escribeArray(v1);
break;

case 3: quitarPares(v1); 
break;
    
case 4: ; 
break;
    
default: System.out.println("Error" ); break;

}
}while(opcion!=4);


}

/*-------------------------------------------------------------------------*/ 

public static void verMenu(){
    System.out.println("1. Introducir el vector");
    System.out.println("2. Escribirir el vector");
    System.out.println("3. Eliminar los pares");
    System.out.println("4. Finalizar"); 
}

// método introduce valores a un vector
public static void leerArray(int [] v){
    Scanner teclado=new Scanner (System.in);


    for(int i=0;i<v.length;i++){
    System.out.println("Introduce un valor para la posición "+i+" de "+(v.length-1));
    v[i]=teclado.nextInt();
    }

}

// método muestra vector
public static void escribeArray( int [] array){
    
    System.out.println("");
        System.out.print("{");
        for(int i=0;i<array.length;i++){
            System.out.print("["+array[i]+"]");
            if(i!=array.length-1) System.out.print(",");
        }
        System.out.println("}");
        System.out.println("");
    }


public static void quitarPares(int [] v){
        int rest, cont=0, cont2=0;

    for(int i=0;i<v.length;i++){
        int div=(int)v[i];
        
        rest=div%2;
        
        if(rest==1){
            cont+=1;
        }else{
            cont2+=1;
        }
    }
        
    //nuevo vector para los impares
    int [] vimPar;
    vimPar = new int[(int)v.length];
    
    //Introducir valores al nuevo vector
    int j=0;
    for(int i=0;i<v.length;i++){
        
            if(v[i]%2==1){
                vimPar[j]=v[i];
                j++;
                int pos=j;
            }
        
    }
    
    //muestra vector original
        System.out.println("Muestra vector original.");
    escribeArray(v);
    
        System.out.println("");
        
    //muestra nuevo vector  
        System.out.println("Muestra vector impar.");
    escribeArray(vimPar);
    
        System.out.println("");
        
        //-------------------------------------
        
        
        
    //nuevo vector para los pares
    int [] vPar;
    vPar = new int[cont2];
    
    //Introducir valores al nuevo vector
    int p=0;
    for(int i=0;i<v.length;i++){
        
            if(v[i]%2==0){
                vPar[p]=v[i];
                p++;
            }
        
    }
    
    //muestra vector Par
        System.out.println("Muestra vector Par.");
    escribeArray(vPar);
    
        System.out.println("");

}

}