Translate

quinta-feira, 10 de abril de 2014

Java - Ordenando Listas

Trabalhar com listas e vetores (arrays) é vital para qualquer linguagem de programação. 

A linguagem Java possui a poderosíssima API Collections, que nos ajuda a trabalhar com listas, e entre outras funcionalidades bastante interessantes, nos permite ordená-las. 


Ordenando uma lista Simples


Começaremos com um exemplo básico: Uma lista de nomes, cujos valores são adicionados aleatoriamente;


   /**
         * Lista de String's contendo nomes
         */
        List<String> listaNomes = new ArrayList<String>();

        listaNomes.add("Joaquim");
        listaNomes.add("Pedro");
        listaNomes.add("Ana");
        listaNomes.add("Bianca");
        listaNomes.add("Maria");
        listaNomes.add("João");

        /**
         * FOR avançado: para cada String dentro de 'listaNomes' associamos a
         * variável 'nome' e a exibimos na tela
         *
         * Exibe lista na ordem de adição
         */
        for (String nome : listaNomes) {

            System.out.println(nome);

        }
A saída obtida ao executarmos este código, é a seguinte: 
Joaquim
Pedro
Ana
Bianca
Maria
João

Usando o metodo estático sort() de java.util.Collections podemos facilmente ordenar esta lista de nomes. O código abaixo é exatamente igual ao anterior, porem adicionamos  a chamada Collections.sort(listaNomes) : 


     /**
         * Lista de String's contendo nomes
         */
        List<String> listaNomes = new ArrayList<String>();

        listaNomes.add("Joaquim");
        listaNomes.add("Pedro");
        listaNomes.add("Ana");
        listaNomes.add("Bianca");
        listaNomes.add("Maria");
        listaNomes.add("João");

        /**
         * Chamada ao metodo sort()
         * Ordena a lista em ordem alfabética;
         */
        Collections.sort(listaNomes);

        for (String nome : listaNomes) {

            System.out.println(nome);

        }

Ordenando um Vetor (Array)


Em JAVA, os vetores (arrays) também podem ser ordenados de forma bem semelhante:
 

   String[] arrayNomes = new String[]{"Joaquim", "Pedro", "Ana", "Bianca", "Maria", "João"};
        
        /**
         * Exibe a lista de nomes 
         * na ordem que está colocada no vetor
         */
        for (int i = 0; i < arrayNomes.length; i++) {
            
            System.out.println(arrayNomes[i]);
            
        }
        
        System.out.println("\n");
        
        /**
         * Ordena os nomes do vetor
         */
        Arrays.sort(arrayNomes);
        
        
        /**
         * Exibe a lista de nomes 
         * já ordenada
         */
        for (int i = 0; i < arrayNomes.length; i++) {
            
            System.out.println(arrayNomes[i]);
            
        }

Nenhum comentário:

Postar um comentário