0Pricing
Java Academy · Leçon

Arrays.sort et tri

Trier des tableaux de types primitifs et d’objets

Arrays.sort et tri est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 4 leçons au total.

Pourquoi une classe utilitaire

Les tableaux en Java sont des objets, mais ils disposent de très peu de méthodes intégrées. La classe java.util.Arrays comble cette lacune avec des méthodes utilitaires statiques pour trier, rechercher, comparer, copier et afficher les tableaux.

  • Importez-la avec import java.util.Arrays;
  • Toutes ses méthodes sont static : vous les appelez donc directement sur la classe : Arrays.sort(...)

Trier un tableau de types primitifs

Arrays.sort(int[]) trie le tableau en place à l'aide d'un tri rapide à deux pivots. La méthode ne renvoie aucune valeur ; le tableau d'origine est réorganisé.

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));
    }
}

Trier d'autres types primitifs

Des surcharges existent pour chaque type primitif : double[], long[], char[], etc. Elles trient toutes les valeurs dans l'ordre croissant.

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));
    }
}

Trier une plage

Vous pouvez trier seulement une partie d'un tableau avec Arrays.sort(array, fromIndex, toIndex). La plage inclut fromIndex et exclut 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));
    }
}

Trier des tableaux d'objets

Pour les tableaux d'objets tels que String[], Arrays.sort utilise l'ordre naturel des éléments, c'est-à-dire leur implémentation de Comparable. Les chaînes sont triées dans l'ordre lexicographique.

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));
    }
}

Trier avec un Comparator

Pour remplacer l'ordre naturel, transmettez un Comparator. Comparator.reverseOrder() trie dans l'ordre décroissant. Cela fonctionne uniquement sur les tableaux d'objets, pas sur les tableaux de types primitifs.

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 selon la longueur

Un Comparator peut comparer n'importe quelle propriété. Comparator.comparingInt(String::length) trie les chaînes de la plus courte à la plus longue.

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));
    }
}

Stabilité

Le tri des tableaux d'objets est stable : les éléments égaux conservent leur ordre relatif d'origine. La stabilité des tris de types primitifs n'est pas garantie, mais les valeurs égales étant indissociables, cela n'a pas d'importance.

Tri parallèle

Pour les tableaux très volumineux, Arrays.parallelSort répartit le travail entre plusieurs cœurs du CPU. L'API est identique à celle de sort : le résultat est le même, mais le traitement est plus rapide sur de grandes quantités de données.

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));
    }
}

Un piège courant

Arrays.sort renvoie void. Une ligne telle que int[] sorted = Arrays.sort(nums); ne se compile pas. Triez d'abord le tableau, puis utilisez la même variable.

Trier puis afficher

Le déroulement habituel consiste à trier le tableau en place, puis à l'afficher avec Arrays.toString pour vérifier le résultat.

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));
    }
}

Vérification rapide

Vérifiez votre compréhension du tri.

Récapitulatif

Vous avez appris à trier des tableaux avec la classe utilitaire Arrays.

  • Arrays.sort(arr) trie les types primitifs ou les objets en place, dans l'ordre croissant.
  • La surcharge acceptant une plage, sort(arr, from, to), trie une partie du tableau.
  • Les tableaux d'objets acceptent un Comparator pour définir un ordre personnalisé.
  • parallelSort accélère le traitement des grands tableaux.

Questions Fréquemment Posées

La leçon « Arrays.sort et tri » est-elle gratuite ?

Oui — le texte complet de « Arrays.sort et tri » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Arrays.sort et tri » ?

Trier des tableaux de types primitifs et d’objets Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Java Academy ?

Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Arrays.sort et tri » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?

Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Arrays.sort et tri
  2. Arrays.binarySearch
  3. Arrays.fill et copyOf
  4. Arrays.equals et toString
← Retour à Java Academy