Translate

sábado, 28 de septiembre de 2013

Como ordenar vectores paralelos en java utilizando funciones en eclipse

Esta ves te traigo un ejemplo de como ordenar vectores paralelos (vectores con el mismo numero de componentes)


import java.util.Scanner;
public class MetodosOrdenamientoVectoresParalelos {
    private Scanner teclado;
private String[] paises;
    private int[] habitantes;
    
    public void cargar() {
        teclado=new Scanner(System.in);
        paises=new String[5];
        habitantes=new int[5];
        System.out.println("Carga de paises y habitantes");
        for(int f=0;f<paises.length;f++) {
            System.out.print("Ingese el nombre del pais:");
            paises[f]=teclado.next();
            System.out.print("Ingrese la cantidad de habitantes:");
            habitantes[f]=teclado.nextInt();
        }
    }        
    
    public void ordenarPorNombres() {
        for(int k=0;k<paises.length;k++) {//.length nos devuelve la cantidad de componentes del arreglo
            for(int f=0;f<paises.length-1-k;f++) {
                if (paises[f].compareTo(paises[f+1])>0) {
                    String auxpais;
                    auxpais=paises[f];
                    paises[f]=paises[f+1];
                    paises[f+1]=auxpais;
                    int auxhabitante;
                    auxhabitante=habitantes[f];
                    habitantes[f]=habitantes[f+1];
                    habitantes[f+1]=auxhabitante;
                }
            }
        }
    }
        
    ///Ordena de mayor a menor
    public void ordenarPorHabitantes() {//3,3
        for(int k=0;k<paises.length;k++) {//0.
            for(int f=0;f<paises.length-1-k;f++) {//0,1.2
                if (habitantes[f]<habitantes[f+1]) {
                    String auxpais;
                    auxpais=paises[f];
                    paises[f]=paises[f+1];
                    paises[f+1]=auxpais;
                    ///aprovechamos este y ordenamos tambien el numero de habitantes
                    int auxhabitante;
                    auxhabitante=habitantes[f];
                    habitantes[f]=habitantes[f+1];
                    habitantes[f+1]=auxhabitante;
                }
            }
        }
    }
    
    ///Metodo utilizado para mostrar los arreglos
    public void imprimir() {
        for(int f=0;f<paises.length;f++) {
            System.out.println(paises[f] + " - " + habitantes[f]);
        }
    }        

    ///metodo principal
    public static void main(String[] ar) {
        MetodosOrdenamientoVectoresParalelos pv=new  MetodosOrdenamientoVectoresParalelos();
        pv.cargar();///Llamamos primero a este metodo
        pv.ordenarPorNombres();///luego este
     System.out.println("Ordenados alfabéticamente");//Mostramos este mensaje
        pv.imprimir();//....
        pv.ordenarPorHabitantes();
     System.out.println("Ordenados por cantidad de habitnates");        
        pv.imprimir();
    }  
}



No hay comentarios:

Publicar un comentario