예제가 포함된 Java의 비교자 인터페이스는 무엇입니까?

Yejega Pohamdoen Javaui Bigyoja Inteopeiseuneun Mueos Ibnikka



Java에서 Comparator 인터페이스는 개체 컬렉션을 정렬하는 데 사용할 수 있는 비교 함수를 정의하는 데 사용됩니다. 자연스러운 순서에 기반한 기본 비교가 아닌 사용자 지정 기준에 따라 개체를 정렬할 수 있습니다. 필요에 따라 기능을 사용자 정의하는 다양한 응용 프로그램이 있습니다. 이 기사에서는 Java의 수많은 예제와 함께 Comparator 인터페이스에 대해 설명합니다.

예제가 포함된 Java의 비교자 인터페이스란 무엇입니까?

Comparator 인터페이스에는 compare() 및 equals() 메서드가 포함되어 있습니다. 첫 번째 방법은 정수 값을 반환하여 두 개체를 계산하는 데 사용됩니다. 다른 방법은 두 개의 비교기 개체가 같은지 계산하는 데 사용됩니다.

다음은 Java에서 Comparator 인터페이스를 사용하는 방법에 대한 다양한 예입니다.







예 1: 길이를 기준으로 목록 정렬

이 예에서는 문자열 목록을 고려하여 알파벳 순서 대신 길이를 기준으로 정렬합니다.



수입 java.util.ArrayList ;

수입 java.util.컬렉션 ;

수입 java.util.비교기 ;

수입 java.util.List ;

공공의 수업 기본 {

공공의 공전 무효의 기본 ( [ ] 인수 ) {

목록 < > 목록 = 새로운 배열목록 <> ( ) ;

목록. 추가하다 ( '남자' ) ;

목록. 추가하다 ( '단발' ) ;

목록. 추가하다 ( '앨리스' ) ;

컬렉션 . 종류 ( 목록 ) ;

체계 . 밖으로 . 프린트 ( 목록 ) ;

컬렉션 . 종류 ( 목록, 새로운 문자열 길이 비교기 ( ) ) ;

체계 . 밖으로 . 프린트 ( 목록 ) ;

}

} // 클래스 정의

수업 문자열 길이 비교기 구현하다 비교기 < > {

공공의 정수 비교하다 ( s1, s2 ) {

반품 정수 . 비교하다 ( s1. 길이 ( ) , s2. 길이 ( ) ) ;

}

}

위 코드에 대한 설명은 다음과 같습니다.



  • 먼저 Comparator 인터페이스를 구현하는 StringLengthComparator라는 사용자 지정 Comparator 클래스를 만듭니다.
  • 두 문자열의 길이를 비교하기 위해 compare() 메서드를 재정의합니다.
  • 마지막으로 사용자 지정 비교기를 사용하여 목록을 정렬하기 위해 인스턴스를 the.sort() 메서드에 전달합니다.

산출





첫 번째 출력은 자연 순서를 사용하여 목록을 정렬한 결과이고 두 번째 출력은 각 문자열의 길이에 따라 사용자 정의 비교기를 사용하여 목록을 정렬한 결과입니다.



예 2: 특정 필드를 기준으로 개체 정렬

또 다른 예로 특정 필드를 기준으로 개체를 정렬하는 작업을 수행합니다. Comparator 인터페이스는 다음을 달성하기 위해 사용됩니다.

수입 java.util.ArrayList ;

수입 java.util.컬렉션 ;

수입 java.util.비교기 ;

수입 java.util.List ;

공공의 수업 기본 {

공공의 공전 무효의 기본 ( [ ] 인수 ) {

목록 < 사람 > = 새로운 배열목록 <> ( ) ; // 이름, 나이, 급여 할당

명. 추가하다 ( 새로운 사람 ( '앨리스' , 25 , 50000 ) ) ;

명. 추가하다 ( 새로운 사람 ( '단발' , 30 , 75000 ) ) ;

명. 추가하다 ( 새로운 사람 ( '백인' , 이십 , 40000 ) ) ;

비교기 < 사람 > 급여 비교기 = 새로운 비교기 < 사람 > ( ) {

// 급여를 기준으로 사람을 정렬합니다.

공공의 정수 비교하다 ( 사람 p1, 사람 p2 ) {

반품 정수 . 비교하다 ( p2. getSalary ( ) , p1. getSalary ( ) ) ;

}

} ;

컬렉션 . 종류 ( 명, 급여비교 ) ; 반품 정렬 값

// 정렬된 사람 목록을 출력합니다.

~을 위한 ( 사람 사람 : ) {

체계 . 밖으로 . 프린트 ( 사람 ) ;

}

}

}

수업 사람 { // 이름, 나이, 급여 정의

사적인 이름 ; // 클래스 내 범위
사적인 정수 나이 ;
사적인 정수 샐러리 ;

공공의 사람 ( 이름, 정수 나이, 정수 샐러리 ) {
이것 . 이름 = 이름 ;
이것 . 나이 = 나이 ;
이것 . 샐러리 = 샐러리 ;
}
공공의 getName ( ) {
반품 이름 ;
}
공공의 정수 getAge ( ) {
반품 나이 ;
}
공공의 정수 getSalary ( ) {
반품 샐러리 ;
}
공공의 toString ( ) {
반품 이름 + ' (나이 ' + 나이 + ', 월급 $' + 샐러리 + ')' ;
}
}

코드에 대한 설명은 다음과 같습니다.

  • '라는 클래스 사람 ” 세 개의 필드 포함: “ 이름 ”, “ 나이 ', 그리고 ' 샐러리 ' 고려.
  • 그런 다음 급여에 따라 내림차순으로 Person 개체 컬렉션을 정렬합니다.

산출

출력은 급여가 내림차순으로 정렬되었음을 보여줍니다.

결론

Java에서 Comparator 인터페이스는 사용자 정의 기준에 따라 개체를 정렬할 수 있는 강력한 도구입니다. 이것은 compare() 메서드를 재정의하며 사용자는 자신의 비교 함수를 정의하고 이를 사용하여 다양한 방법으로 개체 컬렉션을 정렬할 수 있습니다. 이 기사에서는 Java의 실제 예제와 함께 Comparator 인터페이스에 대해 설명했습니다.