HOWTO · Java

Java의 익명 비교기

이 자습서는 Java에서 익명 비교기를 만드는 방법을 보여줍니다.

Java에서는 두 가지 방법으로 익명 비교기를 만들 수 있습니다. 하나는 익명 클래스를 사용하고 다른 하나는 Lambda 표현식을 사용합니다. 이 자습서는 Java에서 익명 비교기를 만드는 방법을 보여줍니다.

Java에서 익명 클래스를 사용하는 익명 비교기

익명 클래스를 사용하여 익명 비교기를 만들려면 다음 단계를 따르세요.

  • 먼저 사용자 정의 클래스를 생성합니다.
  • 그런 다음 비교기 개체에 사용할 다른 클래스를 만듭니다. 이 클래스에는 sort 메소드가 있는 collection 클래스가 포함됩니다.
  • 이제 익명 클래스를 사용하여 비교기 개체를 만든 다음 비교기 개체의 도움으로 비교 메서드를 구현합니다.
  • Collections 클래스의 Sort 메서드는 개체를 전달하여 호출됩니다.
  • 필요에 따라 정렬된 정보를 인쇄하거나 사용하십시오.

위의 단계를 기반으로 Java에서 예제를 시도해 보겠습니다.

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

위의 코드는 Employee 클래스에 대한 익명 비교기를 생성하고 급여에 따라 Employee 목록을 정렬합니다.

출력:

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

Java에서 Lambda 표현식을 사용하는 익명 비교기

람다 식으로 익명 비교기를 만들려면 아래 단계를 따르세요.

  • 먼저 사용자 정의 클래스를 생성합니다.
  • 그런 다음 비교기 개체에 사용할 다른 클래스를 만듭니다. 이 클래스에는 sort 메소드가 있는 collection 클래스가 포함됩니다.
  • 이제 람다 식을 사용하여 비교기 개체 인터페이스를 만든 다음 비교기 인터페이스의 도움으로 compare 메서드를 구현합니다.
  • Collections 클래스의 Sort 메서드는 개체를 전달하여 호출됩니다.
  • 필요에 따라 정렬된 정보를 인쇄하거나 사용하십시오.

위의 단계를 기반으로 Java에서 예제를 시도해 보겠습니다.

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

위의 코드는 익명 비교기에서 람다 식을 사용하여 Employee를 정렬합니다. 출력 참조:

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

우리는 문제를 이해하기 위해 데이터 클래스를 만들었지만 이러한 비교기는 내장 유형에도 쉽게 적용할 수 있습니다.