some image

Codes and Tags

Ordenamiento de arreglos en Java : Ascendente / Descendente

Etiquetas: Blog, Programación No comments

Luego realizar un ordenamiento sencillo en Java a partir de la clase Arrays del paquete java.util.*, este ejemplo muestra el ordenamiento de un Arreglo en forma ascendente y descendente. Para realizar el ordenamiento de forma descendente se requiere usar la clase Collections, para implementar el metodo reverseOrder() el cual implementa la magia de lo que queremos.

//Importo las clases necesarias
import java.util.Arrays;
import java.util.Collections;

public class EjemploSortArrays2 {
    public static void main(String[] args){
        //Creo un arreglo de Integer, aqui uso el autoboxing para realizar un
        //Cast implicito de los valores enteros a Integer (Objetos)
        Integer[] edades = {10,12,13,14,2,50,3,1,7,6};
        //Creo un arreglo de Doubles. autoboxing otra vez...
        Double[] temperaturas = {10.5,8.3,50.9,13.7,45.89,45.88,1.0,12.6};
        //Creo un arreglo de Strings. (Por defecto String siempre es trabajado como un objeto)
        String[] nombres = {"phicar","clerigo","dmk","radical","checho","lozano","cocoman"};

        //Uso simple del metodo sort para ordenamientos ascendentes
        System.out.print("\n [------- Ordenamientos de forma Ascendente --------]");
        //Ejemplo para el ordenamiento de enteros
        Arrays.sort(edades);
        //Ejemplo para el ordenamiento de doubles
        Arrays.sort(temperaturas);
        //Ejemplo para el ordenamiento de Strings
        Arrays.sort(nombres);

        //Muestro las edades ordenadas de forma ascendente
        System.out.print("\n\n[Edades] \n>> ");
        mostrar(edades);

        //Muestro las temperaturas ordenadas de forma ascendente
        System.out.print("\n\n[Temperaturas] \n>> ");
        mostrar(temperaturas);

        //Muestro los nombres ordenados de forma ascendente
        System.out.print("\n\n[Nombres] \n>> ");
        mostrar(nombres);

        //Uso del metodo sort combinado con el metodo reverseOrder para colecciones
        //el cual permite realizar un ordenamiento inverso
        System.out.print("\n\n [------- Ordenamientos de forma Descendente --------]");
        //Ejemplo para el ordenamiento de enteros
        Arrays.sort(edades, Collections.reverseOrder());
        //Ejemplo para el ordenamiento de doubles
        Arrays.sort(temperaturas, Collections.reverseOrder());
        //Ejemplo para el ordenamiento de Strings
        Arrays.sort(nombres, Collections.reverseOrder());

        //Muestro las edades ordenadas de forma desascendente
        System.out.print("\n\n[Edades] \n>> ");
        mostrar(edades);

        //Muestro las temperaturas ordenadas de forma desascendente
        System.out.print("\n\n[Temperaturas] \n>> ");
        mostrar(temperaturas);

        //Muestro los nombres ordenados de forma desascendente
        System.out.print("\n\n[Nombres] \n>> ");
        mostrar(nombres);

    }

    /**
     * Sobrecarga del metodo mostrar para Integers
     */
    public static void mostrar(Integer ... datos){
        for(int i : datos)
            System.out.print(i + ",");
    }

    /**
     * Sobrecarga del metodo mostrar para Doubles
     */
    public static void mostrar(Double ... datos){
        for(double d : datos)
            System.out.print(d + ",");
    }

    /**
     * Sobrecarga del metodo mostrar para Strings
     */
    public static void mostrar(String ... datos){
        for(String s : datos)
            System.out.print(s + ",");
    }
}

Salida

[------- Ordenamientos de forma Ascendente --------]

[Edades] 
>> 1,2,3,6,7,10,12,13,14,50,

[Temperaturas] 
>> 1.0,8.3,10.5,12.6,13.7,45.88,45.89,50.9,

[Nombres] 
>> checho,clerigo,cocoman,dmk,lozano,phicar,radical,

 [------- Ordenamientos de forma Descendente --------]

[Edades] 
>> 50,14,13,12,10,7,6,3,2,1,

[Temperaturas] 
>> 50.9,45.89,45.88,13.7,12.6,10.5,8.3,1.0,

[Nombres] 
>> radical,phicar,lozano,dmk,cocoman,clerigo,checho,

About Edwin Torres

Related Posts

  • Logo Java
  • Logo Java
  • Logo Java
  • Logo Java

Add your comment