Anonymer Komparator in Java

Sheeraz Gul 12 Oktober 2023 Java Java Comparator
  1. Anonymer Komparator mit anonymer Klasse in Java
  2. Anonymer Komparator mit Lambda-Ausdruck in Java
Anonymer Komparator in Java

In Java können wir einen anonymen Komparator auf zwei Arten erstellen: Die eine verwendet die anonyme Klasse und die andere Lambda-Ausdrücke. Dieses Tutorial zeigt, wie Sie einen anonymen Komparator in Java erstellen.

Anonymer Komparator mit anonymer Klasse in Java

Führen Sie die folgenden Schritte aus, um einen anonymen Komparator mit einer anonymen Klasse zu erstellen.

Versuchen wir ein Beispiel in Java, das auf den obigen Schritten basiert.

Java
 javaCopypackage 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);
    }
  }
}

Der obige Code erstellt einen anonymen Vergleicher für die Klasse Employee und sortiert die Liste Employee nach Gehalt.

Ausgabe:

 textCopyName	Salary
---------------------
Shawn  =  5000.0
Jack  =  4500.0
Tina  =  4000.0
Jenny  =  3500.0
Mike  =  3000.0
Michelle  =  2500.0

Anonymer Komparator mit Lambda-Ausdruck in Java

Führen Sie die folgenden Schritte aus, um einen anonymen Komparator mit Lambda-Ausdrücken zu erstellen.

Versuchen wir ein Beispiel in Java, das auf den obigen Schritten basiert.

Java
 javaCopypackage 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);
    }
  }
}

Der obige Code sortiert den Employee mithilfe von Lambda-Ausdrücken in einem anonymen Komparator. Siehe Ausgabe:

 textCopyName	Salary
---------------------
Shawn  =  5000.0
Jack  =  4500.0
Tina  =  4000.0
Jenny  =  3500.0
Mike  =  3000.0
Michelle  =  2500.0

Wir haben unsere Datenklassen erstellt, um das Problem zu verstehen, aber diese Komparatoren können auch problemlos auf integrierte Typen angewendet werden.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Sheeraz Gul avatar Sheeraz Gul avatar

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

Verwandter Artikel - Java Comparator