Java Language Tri des tableaux


Exemple

Le tri des tableaux peut être facilement effectué avec l’API des tableaux .

import java.util.Arrays;

// creating an array with integers
int[] array = {7, 4, 2, 1, 19};
// this is the sorting part just one function ready to be used
Arrays.sort(array);
// prints [1, 2, 4, 7, 19]
System.out.println(Arrays.toString(array));

Tri des tableaux de chaînes:

String n'est pas une donnée numérique, il définit son propre ordre appelé ordre lexicographique, également appelé ordre alphabétique. Lorsque vous triez un tableau de String en utilisant la méthode sort() , il trie le tableau dans l'ordre naturel défini par l'interface Comparable, comme indiqué ci-dessous:

Ordre croissant

String[] names = {"John", "Steve", "Shane", "Adam", "Ben"};
System.out.println("String array before sorting : " + Arrays.toString(names));
Arrays.sort(names); 
System.out.println("String array after sorting in ascending order : " + Arrays.toString(names));

Sortie:

String array before sorting : [John, Steve, Shane, Adam, Ben]    
String array after sorting in ascending order : [Adam, Ben, John, Shane, Steve]

Ordre décroissant

Arrays.sort(names, 0, names.length, Collections.reverseOrder());
System.out.println("String array after sorting in descending order : " + Arrays.toString(names));

Sortie:

String array after sorting in descending order : [Steve, Shane, John, Ben, Adam]

Tri d'un tableau d'objets

Afin de trier un tableau d'objets, tous les éléments doivent implémenter l'interface Comparable ou Comparator pour définir l'ordre du tri.

Nous pouvons utiliser l'une des méthodes sort(Object[]) pour trier un tableau d'objets dans son ordre naturel, mais vous devez vous assurer que tous les éléments du tableau doivent implémenter Comparable .

De plus, ils doivent également être mutuellement comparables, par exemple e1.compareTo(e2) ne doit pas lancer une ClassCastException pour les éléments e1 et e2 du tableau. Vous pouvez également trier un tableau d'objets sur un ordre personnalisé en utilisant la méthode de sort(T[], Comparator) , comme illustré dans l'exemple suivant.

// How to Sort Object Array in Java using Comparator and Comparable
Course[] courses = new Course[4];
courses[0] = new Course(101, "Java", 200);
courses[1] = new Course(201, "Ruby", 300);
courses[2] = new Course(301, "Python", 400);
courses[3] = new Course(401, "Scala", 500);
       
System.out.println("Object array before sorting : " + Arrays.toString(courses));
       
Arrays.sort(courses);
System.out.println("Object array after sorting in natural order : " + Arrays.toString(courses));
       
Arrays.sort(courses, new Course.PriceComparator());
System.out.println("Object array after sorting by price : " + Arrays.toString(courses));
       
Arrays.sort(courses, new Course.NameComparator());
System.out.println("Object array after sorting by name : " + Arrays.toString(courses));

Sortie:

Object array before sorting : [#101 Java@200 , #201 Ruby@300 , #301 Python@400 , #401 Scala@500 ]    
Object array after sorting in natural order : [#101 Java@200 , #201 Ruby@300 , #301 Python@400 , #401 Scala@500 ]    
Object array after sorting by price : [#101 Java@200 , #201 Ruby@300 , #301 Python@400 , #401 Scala@500 ]    
Object array after sorting by name : [#101 Java@200 , #301 Python@400 , #201 Ruby@300 , #401 Scala@500 ]