Comparateur anonyme en Java
- Comparateur anonyme utilisant une classe anonyme en Java
- Comparateur anonyme utilisant l’expression Lambda en Java
En Java, nous pouvons créer un comparateur anonyme de deux manières : l’une utilise la classe anonyme et l’autre utilise des expressions Lambda. Ce tutoriel montre comment créer un comparateur anonyme en Java.
Comparateur anonyme utilisant une classe anonyme en Java
Pour créer un comparateur anonyme avec une classe anonyme, suivez les étapes ci-dessous.
-
Tout d’abord, créez une classe définie par l’utilisateur.
-
Ensuite, créez une autre classe qui sera utilisée pour l’objet comparateur. Cette classe comprendra une classe
collection
avec la méthodesort
. -
Maintenant, en utilisant la classe anonyme, créez l’objet comparateur puis implémentez la méthode de comparaison à l’aide de l’objet comparateur.
-
La méthode
Sort
de la classeCollections
sera appelée en passant l’objet. -
Imprimez ou utilisez les informations triées selon vos besoins.
Essayons un exemple en Java basé sur les étapes ci-dessus.
package delftstack;
import java.util.*;
class Employee {
String name;
double salary;
Employee(String name, double salary) {
this.name = name;
this.salary = salary;
}
}
public class Anonymous_Comparator {
public static void main(String args[]) {
ArrayList<Employee> Employee_List = new ArrayList<Employee>();
Employee_List.add(new Employee("Mike", 3000));
Employee_List.add(new Employee("Michelle", 2500));
Employee_List.add(new Employee("Tina", 4000));
Employee_List.add(new Employee("Shawn", 5000));
Employee_List.add(new Employee("Jack", 4500));
Employee_List.add(new Employee("Jenny", 3500));
Collections.sort(Employee_List, new Comparator<Employee>() {
public int compare(Employee employee1, Employee employee2) {
if (employee1.salary < employee2.salary) {
return 1;
}
return -1;
}
});
System.out.println("Name\tSalary");
System.out.println("---------------------");
for (Employee Employee : Employee_List) {
System.out.println(Employee.name + " = " + Employee.salary);
}
}
}
Le code ci-dessus crée un comparateur anonyme pour la classe Employee
et trie la liste Employee
en fonction du salaire.
Production:
Name Salary
---------------------
Shawn = 5000.0
Jack = 4500.0
Tina = 4000.0
Jenny = 3500.0
Mike = 3000.0
Michelle = 2500.0
Comparateur anonyme utilisant l’expression Lambda en Java
Pour créer un comparateur anonyme avec des expressions lambda, suivez les étapes ci-dessous.
-
Tout d’abord, créez une classe définie par l’utilisateur.
-
Ensuite, créez une autre classe qui sera utilisée pour l’objet comparateur. Cette classe comprendra une classe
collection
avec la méthodesort
. -
Maintenant, à l’aide des expressions lambda, créez l’interface de l’objet comparateur puis implémentez la méthode
compare
à l’aide de l’interface comparateur. -
La méthode
Sort
de la classeCollections
sera appelée en passant l’objet. -
Imprimez ou utilisez les informations triées selon vos besoins.
Essayons un exemple en Java basé sur les étapes ci-dessus.
package delftstack;
import java.util.*;
class Employee {
String name;
double salary;
Employee(String name, double salary) {
this.name = name;
this.salary = salary;
}
}
public class Anonymous_Comparator {
public static void main(String args[]) {
ArrayList<Employee> Employee_List = new ArrayList<Employee>();
Employee_List.add(new Employee("Mike", 3000));
Employee_List.add(new Employee("Michelle", 2500));
Employee_List.add(new Employee("Tina", 4000));
Employee_List.add(new Employee("Shawn", 5000));
Employee_List.add(new Employee("Jack", 4500));
Employee_List.add(new Employee("Jenny", 3500));
Collections.sort(Employee_List, (employee1, employee2) -> { // Using Lambda Expressions
if (employee1.salary < employee2.salary) {
return 1;
}
return -1;
});
System.out.println("Name\tSalary");
System.out.println("---------------------");
for (Employee Employee : Employee_List) {
System.out.println(Employee.name + " = " + Employee.salary);
}
}
}
Le code ci-dessus va trier les Employee
à l’aide d’expressions lambda dans un comparateur anonyme. Voir la sortie :
Name Salary
---------------------
Shawn = 5000.0
Jack = 4500.0
Tina = 4000.0
Jenny = 3500.0
Mike = 3000.0
Michelle = 2500.0
Nous avons créé nos classes de données pour comprendre le problème, mais ces comparateurs peuvent également être facilement appliqués aux types intégrés.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook