비교기 예제

개체 정렬에 사용되는 또 다른 인터페이스는 java.lang.Comparable입니다. 그러나 비교는 다른 특성에 개체를 정렬할 수 없지만 비교자는 정렬할 수 없습니다. 또한 이 경우 비교할 수 있는 비교(T o)를 구현해야 하는 메서드는 현재 개체(이 개체)를 지정된 개체와 순서대로 비교합니다. 이 예제에서는 비교자 인터페이스에 주의를 기울입니다. 예를 들어, elpmoyees 개체 목록의 경우, 자연 순서는 직원 ID에 의해 주문될 수 있습니다. 그러나 실제 응용 프로그램에서는 직원 목록을 이름, 생년월일 또는 단순히 다른 기준으로 정렬 할 수 있습니다. 이러한 조건에서, 우리는 비교기 인터페이스를 사용해야합니다. 다른 정렬 순서를 원한다면 사용 하는 비교기만 변경 하면 됩니다.이 자습서에서는 java.lang.비교 및 java.util.Comparator의 사용을 보여 주어 속성 값에 따라 Java 개체를 정렬 합니다. 비교자 인터페이스의 비교(Object o1, Object o2) 메서드는 두 개체를 비교하고 비교에 따라 정수를 반환하는 이 목적을 위해 구현되어야 합니다. 0, o1이 o2와 같으면; o1이 o1 보다 적으면 음수입니다. 첫 번째 예에서는 비교기를 만들어 플레이어의 순위 속성을 사용하여 플레이어를 정렬합니다: 비교.비교 메서드는 아이템 을 비교하는 데 사용할 속성을 계산하는 방법을 취하고 일치하는 비교자 인스턴스를 반환합니다. 비교자 인터페이스를 사용할 수 있습니다.

위의 코드를 설명해 보겠습니다. 학생 유형의 세 개체인 학생 배열을 만든 다음 각 학생의 이름과 최종 성적을 설정합니다. 그런 다음 정렬하지 않고 배열을 출력하도록 인쇄한 다음 배열 (a)을 등급별로 정렬하고 (b) 이름으로 정렬한 다음 마지막으로 각 결과를 출력에 인쇄합니다. 정렬은 java.util.Arrays의 메서드 정렬(T[] a, 비교자 c)을 사용하여 수행할 수 있으며, 이는 지정된 비교자(NameComparator 또는 GradeComparator)에 의해 유도된 순서에 따라 학생의 배열을 정렬합니다. 비교 및 비교자 인터페이스는 컴파일 타임 형식 검사에 제네릭을 사용하고 Java 제네릭에 대해 자세히 알아봅니다. 과일의 „과일 이름”또는 „수량”으로 분류하는 것은 어떻습니까? 비교 가능한 인터페이스는 단일 속성만 정렬할 수 있습니다. 여러 속성으로 정렬하려면 비교자가 필요합니다. 새 업데이트된 과일 클래스를 다시 참조하십시오 : 그래서, 예를 보자. 우선 정렬할 개체를 나타내는 클래스를 만들어 보겠습니다. 다음 코드로 Student.java라는 자바 클래스를 만듭니다.

이와 같이 Collections.sort 메서드를 호출하려면 먼저 이러한 비교자 클래스 AuthorAgeComparator 및 BookNameComparator를 작성해야 합니다.

Comment is closed.