Techniques de tri en Java

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Le tri est une opération essentielle en informatique, et Java fournit différentes méthodes intégrées pour trier diverses structures de données. Java dispose de différentes classes pour trier différentes structures de données. Dans ce laboratoire, nous allons explorer le tri d'ensembles d'éléments, de collections et d'instances de classes définies par l'utilisateur.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/arrays_methods("Arrays Methods") java/DataStructuresGroup -.-> java/sorting("Sorting") java/DataStructuresGroup -.-> java/collections_methods("Collections Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/arraylist("ArrayList") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/hashmap("HashMap") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/hashset("HashSet") subgraph Lab Skills java/arrays -.-> lab-117987{{"Techniques de tri en Java"}} java/arrays_methods -.-> lab-117987{{"Techniques de tri en Java"}} java/sorting -.-> lab-117987{{"Techniques de tri en Java"}} java/collections_methods -.-> lab-117987{{"Techniques de tri en Java"}} java/arraylist -.-> lab-117987{{"Techniques de tri en Java"}} java/hashmap -.-> lab-117987{{"Techniques de tri en Java"}} java/hashset -.-> lab-117987{{"Techniques de tri en Java"}} end

Tri d'ensembles d'éléments

Les tableaux sont une structure de données simple utilisée pour stocker des données de types similaires de manière ordonnée. Nous pouvons trier des tableaux à l'aide de la méthode intégrée sort() de la classe Arrays.

Le code suivant montre comment trier un tableau à l'aide de la méthode sort() :

public static void main(String[] args) {
    int[] arr = {7, 9, 1, 0, 2, 5, 6, 11};
    System.out.println("Tableau avant le tri : " + Arrays.toString(arr));
    Arrays.sort(arr);
    System.out.println("Tableau après le tri : " + Arrays.toString(arr));
}

Pour exécuter ce code, accédez au répertoire ~/projet dans le terminal et exécutez les commandes suivantes :

$ javac Tri.java
$ java Tri

Ce code triera le tableau par ordre croissant. Si vous voulez trier un tableau par ordre décroissant, vous devrez le trier à l'aide de l'interface Comparator.

Tri de collections

Java fournit la classe Collections qui possède une méthode sort() pour trier des collections telles que des listes, des ensembles et des cartes. Le modèle de fonctionnement de cette fonction est similaire à la méthode sort() de la classe Arrays.

Le code suivant montre comment trier une liste d'entiers à l'aide de la méthode sort() :

public static void main(String[] args) {
    List<Integer> list = new ArrayList<Integer>();
    list.add(6);
    list.add(3);
    list.add(8);
    list.add(1);
    list.add(9);

    System.out.println("Liste avant le tri : " + list);

    Collections.sort(list);
    System.out.println("Liste après le tri : " + list);
}

Pour exécuter ce code, accédez au répertoire ~/projet dans le terminal et exécutez les commandes suivantes :

$ javac Tri.java
$ java Tri

Tri d'ensembles

Les ensembles sont utilisés pour stocker des données non ordonnées sans doublons. Nous ne pouvons pas trier directement un ensemble à l'aide de la méthode sort() de la classe Collections. Cependant, nous pouvons visualiser les données ordonnées en transférant tous les éléments de l'ensemble dans une liste puis en triant cette liste.

Le code suivant montre comment trier un ensemble d'entiers à l'aide de la méthode sort() :

public static void main(String[] args) {
    Set<Integer> set = new HashSet<Integer>();
    set.add(6);
    set.add(3);
    set.add(-2);
    set.add(1);
    set.add(9);

    List<Integer> list = new ArrayList<Integer>(set);
    Collections.sort(list);
    System.out.println("Ensemble après tri : " + list);
}

Pour exécuter ce code, accédez au répertoire ~/projet dans le terminal et exécutez les commandes suivantes :

$ javac Tri.java
$ java Tri

La sortie de ce code sera une liste triée d'entiers.

Tri de cartes

Les cartes sont utilisées pour stocker des paires clé-valeur. Nous pouvons trier les cartes selon leurs clés ou leurs valeurs. TreeMap peut également être utilisé pour stocker des paires clé-valeur dans un ordre trié.

Le code suivant montre comment trier une carte d'entiers à l'aide de la méthode sort() :

public static void main(String[] args) {
    Map<Integer, String> map = new TreeMap<Integer, String>();
    map.put(6, "Apple");
    map.put(3, "Banana");
    map.put(1, "Mango");
    map.put(9, "Orange");

    System.out.println("Carte avant le tri : " + map);

    // Tri par clés
    Map<Integer, String> sortedByKeyMap = new TreeMap<Integer, String>(map);
    System.out.println("Carte après le tri par clés : " + sortedByKeyMap);

    // Tri par valeur
    List<Map.Entry<Integer, String>> list = new ArrayList<Map.Entry<Integer, String>>(map.entrySet());
    Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
        public int compare(Map.Entry<Integer, String> o1, Map.Entry<Integer, String> o2) {
            return (o1.getValue()).compareTo(o2.getValue());
        }
    });

    Map<Integer, String> sortedByValueMap = new LinkedHashMap<Integer, String>();
    for (Map.Entry<Integer, String> entry : list) {
        sortedByValueMap.put(entry.getKey(), entry.getValue());
    }
    System.out.println("Carte après le tri par valeurs : " + sortedByValueMap);
}

Pour exécuter ce code, accédez au répertoire ~/projet dans le terminal et exécutez les commandes suivantes :

$ javac Tri.java
$ java Tri

Ce code triera la carte selon ses clés et ses valeurs.

Récapitulatif

Ce laboratoire a démontré comment trier différents types de structures de données en Java. Nous avons appris comment trier des tableaux, des collections et des cartes. Nous avons également appris comment trier des objets de classes définies par l'utilisateur à l'aide des interfaces Comparable et Comparator. Les méthodes sort() des classes Collections et Arrays ont été utilisées pour trier des listes et des tableaux. Enfin, nous avons appris comment trier des cartes selon leurs valeurs et leurs clés.