Maison  >  Article  >  Java  >  Trier les vecteurs Java par ordre décroissant à l'aide du comparateur

Trier les vecteurs Java par ordre décroissant à l'aide du comparateur

WBOY
WBOYavant
2023-08-20 19:17:03757parcourir

Trier les vecteurs Java par ordre décroissant à laide du comparateur

Vectors implémente l'interface List et est utilisé pour créer des tableaux dynamiques. Les tableaux dont la taille n'est pas fixe et peut croître selon nos besoins sont appelés tableaux dynamiques. Comparator est une interface disponible dans le package « java.util ».

Trier signifie réorganiser les éléments d'une liste ou d'un tableau donné par ordre croissant ou décroissant. Dans cet article, nous allons créer un vecteur puis essayer de trier ses éléments par ordre décroissant à l'aide d'un comparateur.

Programme pour trier les vecteurs Java par ordre décroissant

Comparateur

Comme son nom l’indique, il est utilisé pour comparer quelque chose. En Java, Comparator est une interface permettant de trier des objets personnalisés. Nous pouvons écrire notre propre logique pour trier les objets spécifiés dans sa méthode intégrée "compare()". Cette méthode accepte deux objets comme paramètres et renvoie une valeur entière. Grâce à cette valeur entière, le Comparateur détermine quel objet est le plus grand.

Syntaxe

Comparator< TypeOfComparator > nameOfComparator = new Comparator< TypeOfComparator >() {
   compare( type object1, type object1 ) {
      // logic for comparison
   }
};

Dans une méthode comme 'Collection.sort()', nameOfComparator est le paramètre utilisé pour l'opération de tri.

Méthode Collections.sort()

La classe 'Collections' de l'interface de collection fournit une méthode statique nommée 'Collections.sort()' qui peut trier les éléments des collections spécifiées comme ArrayList ou LinkedList. Elle est disponible dans le package 'java.util'.

.

Syntaxe

Collections.sort( nameOfcollection, ComparatorObject );

Collections.reverseOrder()

Il renvoie le comparateur dans l'ordre inverse

.

Exemple 1

Dans l'exemple suivant, nous allons définir un vecteur nommé 'vectlist' et y stocker quelques objets en utilisant la méthode 'add()'. Ensuite, utiliser l'objet Comparator et la méthode 'Collection.sort()' pour trier les éléments. vecteur par ordre décroissant.

import java.util.*;
public class VectClass {
   public static void main(String args[]) {
      // Creation of vector 
      Vector<Integer> vectList = new Vector<>();
      // Adding elements in the vector
      vectList.add(97);
      vectList.add(93);
      vectList.add(95);
      vectList.add(99);
      vectList.add(82);
      vectList.add(88);
      System.out.println("Elements of the unsorted list: ");
      // loop to iterate through elements
      for(int i = 0; i < vectList.size(); i++ ) {
         // to print the elements of the vector
         System.out.print(vectList.get(i) + " "); 
      }
      System.out.println();
      // Using comparator interface for sorting
      Comparator comp = Collections.reverseOrder();
      Collections.sort(vectList, comp);
      System.out.println("Elements of the newly sorted list: ");
      // loop to iterate through elements
      for(int i = 0; i < vectList.size(); i++ ) {
         // to print the elements of the new vector
		   System.out.print(vectList.get(i) + " "); 
      }
   }
}

Sortie

Note: VectClass.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Elements of the unsorted list: 
97 93 95 99 82 88 
Elements of the newly sorted list: 
99 97 95 93 88 82 

Exemple 2

Dans cet exemple, nous allons d'abord créer un comparateur et à l'intérieur de celui-ci, nous définissons notre logique dans la méthode 'compare()' pour trier les objets vectoriels par ordre décroissant. La logique ici indique que prendre deux objets en même temps et les comparer. en utilisant le bloc if-else. Si le premier objet est supérieur au deuxième, retournez -1 sinon 1. Ensuite, nous passons l'objet du comparateur à 'Collection.sort()' pour l'opération de tri.

import java.util.*;
public class VectClass {
   public static void main(String args[]) {
      // Using comparator interface for sorting
      Comparator<Integer> comp = new Comparator<Integer>() {
         // logic to sort in descending order
         public int compare(Integer i, Integer j) {
            if(i < j) {
               return 1;
            } else {
               return -1;
            }
         }
      };
      // Creation of vector 
      Vector<Integer> vectList = new Vector<>();
      // Adding elements in the vector
      vectList.add(97);
      vectList.add(93);
      vectList.add(95);
      vectList.add(99);
      vectList.add(82);
      vectList.add(88);
      System.out.println("Elements of the unsorted list: ");
      // loop to iterate through elements
      for(int i = 0; i < vectList.size(); i++ ) {
         // to print the elements of the vector
		   System.out.print(vectList.get(i) + " "); 
      }
      System.out.println();
      Collections.sort(vectList, comp); // sort using comparator
      System.out.println("Elements of the newly sorted list: ");
      // loop to iterate through elements
      for(int i = 0; i < vectList.size(); i++ ) {
         // to print the elements of the new vector
         System.out.print(vectList.get(i) + " "); 
      }
   }
}

Sortie

Elements of the unsorted list: 
97 93 95 99 82 88 
Elements of the newly sorted list: 
99 97 95 93 88 82 

Conclusion

Cet article a expliqué l'implémentation de l'interface Comparator et nous avons également découvert l'utilisation de quelques méthodes intégrées telles que 'compareTo()', 'Collection.sort()' et 'Collections.reverseOrder()'

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer