Comparador anónimo en Java
- Comparador anónimo usando clase anónima en Java
- Comparador anónimo usando la expresión Lambda en Java
En Java, podemos crear un comparador anónimo de dos maneras: una usa la clase anónima y la otra usa expresiones Lambda. Este tutorial demuestra cómo crear un comparador anónimo en Java.
Comparador anónimo usando clase anónima en Java
Para crear un comparador anónimo con una clase anónima, siga los pasos a continuación.
-
En primer lugar, cree una clase definida por el usuario.
-
Luego, cree otra clase que se usará para el objeto comparador. Esta clase incluirá una clase
collection
con el métodosort
. -
Ahora, utilizando la clase anónima, cree el objeto comparador y luego implemente el método de comparación con la ayuda del objeto comparador.
-
Se llamará al método
Sort
de la claseCollections
pasando el objeto. -
Imprima o utilice la información ordenada según sus necesidades.
Probemos un ejemplo en Java basado en los pasos anteriores.
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);
}
}
}
El código anterior crea un comparador anónimo para la clase Employee
y ordena la lista de Employee
según el salario.
Producción :
Name Salary
---------------------
Shawn = 5000.0
Jack = 4500.0
Tina = 4000.0
Jenny = 3500.0
Mike = 3000.0
Michelle = 2500.0
Comparador anónimo usando la expresión Lambda en Java
Para crear un comparador anónimo con expresiones lambda, siga los pasos a continuación.
-
En primer lugar, cree una clase definida por el usuario.
-
Luego, cree otra clase que se usará para el objeto comparador. Esta clase incluirá una clase
collection
con el métodosort
. -
Ahora, utilizando las expresiones lambda, cree la interfaz del objeto comparador y luego implemente el método
compare
con la ayuda de la interfaz del comparador. -
Se llamará al método
Sort
de la claseCollections
pasando el objeto. -
Imprima o utilice la información ordenada según sus necesidades.
Probemos un ejemplo en Java basado en los pasos anteriores.
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);
}
}
}
El código anterior ordenará el Employee
usando expresiones lambda en un comparador anónimo. Ver salida:
Name Salary
---------------------
Shawn = 5000.0
Jack = 4500.0
Tina = 4000.0
Jenny = 3500.0
Mike = 3000.0
Michelle = 2500.0
Creamos nuestras clases de datos para comprender el problema, pero estos comparadores también se pueden aplicar fácilmente a tipos integrados.
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