0Pricing
Java Academy · Aula

Arrays.sort e Ordenação

Ordene matrizes de tipos primitivos e de objetos

Arrays.sort e Ordenação é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.

Por que uma classe utilitária

Arrays em Java são objetos, mas têm pouquíssimos métodos integrados. A classe java.util.Arrays preenche essa lacuna com métodos auxiliares estáticos para ordenar, pesquisar, comparar, copiar e imprimir arrays.

  • Importe-a com import java.util.Arrays;
  • Todos os métodos são static, então você os chama diretamente na classe: Arrays.sort(...)

Ordenando um array de tipos primitivos

Arrays.sort(int[]) ordena o array no próprio lugar usando um quicksort rápido de pivô duplo. Não há valor de retorno; o array original é reorganizado.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] nums = {5, 2, 8, 1, 9, 3};
        Arrays.sort(nums);
        System.out.println(Arrays.toString(nums));
    }
}

Ordenando outros tipos primitivos

Existem sobrecargas para todos os tipos primitivos: double[], long[], char[] e outros. Todas ordenam em ordem crescente.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        double[] prices = {3.5, 1.2, 9.9, 0.5};
        Arrays.sort(prices);
        System.out.println(Arrays.toString(prices));
    }
}

Ordenando um intervalo

Você pode ordenar apenas parte de um array com Arrays.sort(array, fromIndex, toIndex). O intervalo inclui fromIndex e não inclui toIndex.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] nums = {5, 2, 8, 1, 9, 3};
        Arrays.sort(nums, 1, 4);
        System.out.println(Arrays.toString(nums));
    }
}

Ordenando arrays de objetos

Para arrays de objetos, como String[], Arrays.sort usa a ordenação natural dos elementos, definida pela implementação de Comparable. As strings são ordenadas lexicograficamente.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] names = {"Charlie", "Alice", "Bob"};
        Arrays.sort(names);
        System.out.println(Arrays.toString(names));
    }
}

Ordenando com um Comparator

Para substituir a ordenação natural, passe um Comparator. Comparator.reverseOrder() ordena em ordem decrescente. Isso funciona somente em arrays de objetos, não em arrays de tipos primitivos.

import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        String[] names = {"Charlie", "Alice", "Bob"};
        Arrays.sort(names, Comparator.reverseOrder());
        System.out.println(Arrays.toString(names));
    }
}

Comparator por comprimento

Um Comparator pode comparar qualquer propriedade. Comparator.comparingInt(String::length) ordena as strings da menor para a maior.

import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        String[] words = {"banana", "fig", "apple"};
        Arrays.sort(words, Comparator.comparingInt(String::length));
        System.out.println(Arrays.toString(words));
    }
}

Estabilidade

A ordenação de arrays de objetos é estável: elementos iguais mantêm sua ordem relativa original. Não há garantia de estabilidade nas ordenações de tipos primitivos, mas, para esses tipos, valores iguais são indistinguíveis, então isso não importa.

Ordenação paralela

Para arrays muito grandes, Arrays.parallelSort divide o trabalho entre vários núcleos da CPU. A API é idêntica à de sort; o resultado é o mesmo, apenas mais rápido para grandes volumes de dados.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] nums = {7, 3, 9, 1, 5, 2, 8, 4};
        Arrays.parallelSort(nums);
        System.out.println(Arrays.toString(nums));
    }
}

Uma armadilha comum

Arrays.sort retorna void. Uma linha como int[] sorted = Arrays.sort(nums); não será compilada. Ordene primeiro e depois use a mesma variável.

Ordenando e depois imprimindo

Um fluxo comum é: ordenar o array no próprio lugar e depois imprimi-lo com Arrays.toString para verificar o resultado.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] scores = {88, 72, 95, 60, 81};
        Arrays.sort(scores);
        System.out.println("Lowest:  " + scores[0]);
        System.out.println("Highest: " + scores[scores.length - 1]);
        System.out.println(Arrays.toString(scores));
    }
}

Verificação rápida

Teste sua compreensão sobre ordenação.

Recapitulação

Você aprendeu a ordenar arrays com a classe utilitária Arrays.

  • Arrays.sort(arr) ordena tipos primitivos ou objetos no próprio lugar, em ordem crescente.
  • Uma sobrecarga para intervalos, sort(arr, from, to), ordena parte do array.
  • Arrays de objetos aceitam um Comparator para uma ordenação personalizada.
  • parallelSort acelera a ordenação de arrays grandes.

Perguntas Frequentes

A aula “Arrays.sort e Ordenação” é grátis?

Sim — o texto completo de “Arrays.sort e Ordenação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.

O que vou aprender em “Arrays.sort e Ordenação”?

Ordene matrizes de tipos primitivos e de objetos Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Java Academy?

Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Arrays.sort e Ordenação”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Java Academy?

Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Arrays.sort e Ordenação
  2. Arrays.binarySearch
  3. Arrays.fill e copyOf
  4. Arrays.equals e toString
← Voltar para Java Academy