Trier une liste en Java

Lovey Arora 12 octobre 2023
  1. Utilisez la méthode Collections.sort() pour trier une liste en Java
  2. Utilisez la méthode Collections.reverseorder() pour trier une liste en Java
  3. Utilisez la méthode Stream.sorted() pour trier une liste en Java
  4. Utilisez la méthode Comparator.naturalOrder() pour trier une ArrayList en Java
Trier une liste en Java

Une liste est une collection ordonnée et peut stocker des éléments dans n’importe quel ordre. Nous pouvons appliquer des algorithmes traditionnels à une liste.

Ce tutoriel montrera comment trier une liste en Java à l’aide de différentes fonctions.

Utilisez la méthode Collections.sort() pour trier une liste en Java

Nous pouvons utiliser la fonction sort() de la classe Collections pour trier une liste. On peut prendre l’objet list, et il modifie l’ordre des éléments. Il trie la liste par ordre croissant.

Par exemple,

import java.util.*;
import java.util.stream.*;

public class Main {
  public static void main(String[] args) {
    List<Integer> slist = Arrays.asList(4, 5, 1, 2, 8, 9, 6);
    Collections.sort(slist);
    System.out.println("After Sorting: " + slist);
  }
}

Production:

After Sorting: [1, 2, 4, 5, 6, 8, 9]

Nous pouvons voir que la liste d’origine est modifiée et triée dans l’ordre approprié dans le code ci-dessus.

Notez qu’il devrait y avoir les mêmes types d’éléments dans la liste ; sinon, il lèvera CLassCastException.

Utilisez la méthode Collections.reverseorder() pour trier une liste en Java

Nous utilisons la méthode Collections.reverseorder() pour trier l’ArrayList par ordre décroissant. Nous n’utilisons pas cette méthode directement. Tout d’abord, la méthode Collections.sort() est utilisée pour trier par ordre croissant, puis la méthode Collections.reverseorder() est utilisée pour trier par ordre décroissant.

Voir le code ci-dessous.

import java.util.*;
import java.util.stream.*;

public class Main {
  public static void main(String[] args) {
    List<Integer> slist = Arrays.asList(4, 5, 1, 2, 8, 9, 6);
    Collections.sort(slist, Collections.reverseOrder());
    System.out.println("After Sorting: " + slist);
  }
}

Production:

After Sorting: [9, 8, 6, 5, 4, 2, 1]

Nous avons créé une liste dans le code ci-dessus puis l’avons triée à l’aide de la méthode Collections.sort(). Il est ensuite trié par ordre décroissant à l’aide de la méthode Collections.reverseorder().

Utilisez la méthode Stream.sorted() pour trier une liste en Java

La fonction sorted() est définie dans l’interface Stream présente dans le package java.util. En utilisant cette méthode, la liste est triée par ordre croissant. Si les éléments de la liste ne sont pas du même type, alors il lance java.lang.ClassCastEcxeption.

Ici, nous utiliserons la fonction stream() pour gérer la collection d’éléments dans la liste, collect() recevra et stockera les éléments, et la fonction tolist() renverra la liste finale dans le tri ordre.

Par exemple,

import java.util.*;
import java.util.stream.*;

public class Main {
  public static void main(String[] args) {
    List<Integer> slist = Arrays.asList(4, 5, 1, 2, 8, 9, 6);
    List<Integer> sortedList = slist.stream().sorted().collect(Collectors.toList());
    System.out.println("After Sorting: " + sortedList);
  }
}

Production:

After Sorting: [1, 2, 4, 5, 6, 8, 9]

Notez qu’une nouvelle liste est créée dans l’exemple ci-dessus.

Utilisez la méthode Comparator.naturalOrder() pour trier une ArrayList en Java

L’interface Comparator en Java permet de trier les objets des classes créées par l’utilisateur en fonction de la donnée membre souhaitée. Nous pouvons également l’utiliser pour trier des listes.

La fonction naturalOrder() va trier les éléments par ordre croissant.

Voir le code ci-dessous.

import java.util.*;
import java.util.stream.*;

public class Main {
  public static void main(String[] args) {
    List<Integer> slist = Arrays.asList(4, 5, 1, 2, 8, 9, 6);
    slist.sort(Comparator.naturalOrder());
    System.out.println("After Sorting: " + slist);
  }
}

Production:

After Sorting: [1, 2, 4, 5, 6, 8, 9]

Les éléments nuls sont triés en haut à l’aide de cette méthode. En ce qui concerne les alphabets, les mots commençant par des lettres majuscules sont triés en premier, puis les mots commençant par des lettres minuscules sont triés par ordre croissant.

Nous pouvons utiliser la fonction reverseOrder() comme indiqué précédemment pour trier par ordre décroissant.

Par exemple,

import java.util.*;
import java.util.stream.*;
public class Main {
  public static void main(String[] args) {
    List<Integer> slist = Arrays.asList(4, 5, 1, 2, 8, 9, 6);
    slist.sort(Comparator.reverseOrder());
    System.out.println("After Sorting: " + slist);
  }
}

Production:

After Sorting: [9, 8, 6, 5, 4, 2, 1]

Article connexe - Java List