Maison >Java >javaDidacticiel >Trier les vecteurs Java par ordre décroissant à l'aide 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.
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.
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.
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'.
.Collections.sort( nameOfcollection, ComparatorObject );
Il renvoie le comparateur dans l'ordre inverse
.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) + " "); } } }
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
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) + " "); } } }
Elements of the unsorted list: 97 93 95 99 82 88 Elements of the newly sorted list: 99 97 95 93 88 82
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!