Maison >Java >javaDidacticiel >Tri vectoriel Java

Tri vectoriel Java

WBOY
WBOYoriginal
2024-08-30 15:30:31474parcourir

Java Vector Sort est une méthode de Java Vector Class utilisée pour trier les vecteurs selon l'ordre par comparateur spécifié. Comme Vector en Java maintient l'ordre d'insertion des éléments, la méthode sort(,) est utilisée pour trier les éléments par ordre croissant ou décroissant. La méthode Sort() fait partie de la classe Collections ; les éléments vectoriels peuvent également être triés à l’aide de Comparable et Comparator. Comme un tableau, Vector est également un objet évolutif contenant des éléments accessibles à l'aide d'un index entier. La taille du vecteur peut augmenter ou diminuer en ajoutant ou en supprimant des éléments après la création du vecteur.

PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Syntaxe :

Ce qui suit est utilisé comme déclaration de la méthode sort(),

public void sort(Comparator<? super E> c);

L'argument obligatoire « c » est le comparateur utilisé pour comparer les éléments vectoriels. Ne renvoie rien si la méthode a un type de retour void

Il n'y a pas d'exceptions, et ceci est compatible avec la version Java 1.2 et supérieure

Étapes pour trier les vecteurs à l'aide du comparateur

  • Création d'un objet Vecteur
  • Ajout d'éléments au vecteur à l'aide de la méthode add (élément e)
  • Tri des objets vectoriels à l'aide de Collections.sort
  • Affichage de la liste des éléments triés

Exemples de tri vectoriel Java

Voici les exemples suivants mentionnés ci-dessous

Exemple n°1

Tri vectoriel simple() utilisant Collections.sort()

Code :

import java.util.Vector;
import java.util.Collections;
public class SortJavaVectorExample {
public static void main(String[] args) {
Vector vector = new Vector();
vector.add("10");
vector.add("31");
vector.add("52");
vector.add("23");
vector.add("44");
System.out.println("Vector elements before sorting: ");
for(int x=0; x<vector.size(); x++)
System.out.println(vector.get(x));
Collections.sort(vector);
System.out.println("Sorted Vector elements in ascending order: ");
for(int y=0; y<vector.size(); y++)
System.out.println(vector.get(y));
}
}

Sortie :

Tri vectoriel Java

Déclarer le vecteur, ajouter des éléments au vecteur et imprimer les éléments sans trier conserve le même ordre d'insertion. En utilisant la boucle for, get(x) récupère l'élément de l'index x

Collections.sort() trie les éléments vectoriels par ordre croissant et les affichent à l'aide de la boucle for.

Exemple n°2

Tri vectoriel pour l'ordre alphabétique

Code :

import java.util.*;
public class VectrSort {
public static void main(String arg[]) {
Vector < String > v = new Vector < String > ();
v.add("Dragon Fruit");
v.add("Apple");
v.add("Watermelon");
v.add("Orange");
v.add("Strawberry");
System.out.println("Elements of Vector are: ");
for (String fruit: v) {
System.out.println("  "+fruit);
}
Collections.sort(v);
System.out.println("Vector elements after sorting are: ");
for (String fruit : v) {
System.out.println("  "+fruit);
}
}
}

Sortie :

Tri vectoriel Java

Nous trierons les éléments vectoriels par ordre décroissant, c'est-à-dire que la méthode reverseOrder() de la classe Collections doit être invoquée, ce qui impose naturellement l'ordre inverse des éléments vectoriels.

Exemple #3

Tri des éléments vectoriels dans l'ordre inverse.

Code :

import java.util.Vector;
import java.util.Comparator;
import java.util.Collections;
public class reverseSortArray {
public static void main(String[] args) {
Vector v = new Vector();
v.add("ColorRed");
v.add("ColorYellow");
v.add("ColorBlue");
v.add("ColorBlack");
v.add("ColorOrange");
v.add("ColorGreen");
System.out.println("Vector Elements before sorting :");
for(int x=0; x < v.size(); x++)
System.out.println(v.get(x));
Comparator comparator = Collections.reverseOrder();
Collections.sort(v,comparator);
System.out.println("Vector Elements after reverse sorting :");
for(int x=0; x < v.size(); x++)
System.out.println(v.get(x));
}
}

Sortie :

Tri vectoriel Java

Donc ici, les éléments vectoriels sont triés par ordre décroissant en fonction des alphabets.

Regardons le tri des éléments vectoriels des objets de classe personnalisés.

La méthode Collections.sort() mentionnée ci-dessus ne fonctionne que si la classe d'éléments implémente Comparable Interface ; s'il n'est pas implémenté, nous serons confrontés à une erreur de compilation.

Ici, nous verrons comment la classe personnalisée implémente l'interface comparable.

Exemple n°4

Tri vectoriel pour les objets de classe personnalisés.

Code :

import java.util.Collections;
import java.util.Vector;
class Employee implements Comparable<Employee>{
private int empid;
public Employee(int empid){
this.empid = empid;
}
public String toString(){
return "Employee[" + this.empid + "]";
}
public int getempId(){
return this.empid;
}
public int compareTo(Employee otherEmployee) {
return this.getempId() - otherEmployee.getempId();
}
}
public class EmployeeSortVector {
public static void main(String[] args) {
Vector<Employee> vEmp = new Vector<Employee>();
vEmp.add(new Employee(110));
vEmp.add(new Employee(121));
vEmp.add(new Employee(102));
vEmp.add(new Employee(145));
vEmp.add(new Employee(1));
Collections.sort(vEmp);
System.out.println(vEmp);
}
}

Sortie :

Tri vectoriel Java

Pour trier les éléments ci-dessus dans l'ordre inverse, reverseComparator doit être utilisé.

Collections.sort(vEmp, Collections.reverseOrder())

Nous pouvons également trier les objets de classe personnalisés à l'aide d'un comparateur personnalisé. Précédemment, nous avons vu comment Comparable Interface est implémentée ; maintenant, nous allons créer un comparateur personnalisé pour les objets de classe.

Exemple #5

Tri vectoriel d'un objet de classe personnalisé à l'aide du comparateur personnalisé.

Code :

import java.util.Collections;
import java.util.Comparator;
import java.util.Vector;
class Employee{
private int empid;
public Employee(int empid){
this.empid = empid;
}
public String toString(){
return "Employee[" + this.empid + "]";
}
public int getempId(){
return this.empid;
}
}
class EmployeeComparator implements Comparator<Employee>{
public int compare(Employee emp1, Employee emp2) {
return emp1.getempId() - emp2.getempId();
}
}
class EmployeeComparatorDesc implements Comparator<Employee>{
public int compare(Employee emp1, Employee emp2) {
return emp2.getempId() - emp1.getempId();
}
}
public class SortJavaVectorExample {
public static void main(String[] args) {
Vector<Employee> vEmp = new Vector<Employee>();
vEmp.add(new Employee(346));
vEmp.add(new Employee(111));
vEmp.add(new Employee(211));
vEmp.add(new Employee(533));
vEmp.add(new Employee(211));
vEmp.add(new Employee(25));
Collections.sort(vEmp, new EmployeeComparator());
System.out.println(vEmp);
Collections.sort(vEmp, new EmployeeComparatorDesc());
System.out.println(vEmp);
}
}

Sortie :

Tri vectoriel Java

Avec cela, nous conclurons notre sujet « Tri vectoriel Java ». Nous avons vu ce qu'est le tri vectoriel en Java et comment il est implémenté. Sa syntaxe avec les arguments requis est également expliquée. Également discuté de la façon dont le tri vectoriel est effectué et j'ai vu tous les types d'exemples, tri par ordre croissant à l'aide de Collections.sort(), ordre décroissant avec la méthode Collections.reverseOrder(). En plus de cela, nous avons également trié les objets de classe personnalisés à l'aide de Comparable et avons également personnalisé le comparable pour les objets de classe personnalisés. J'espère que nous avons couvert le maximum de domaines du sujet. Merci! Bon apprentissage !

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Algorithme DFS en JavaArticle suivant:Algorithme DFS en Java