예제가 포함된 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 인터페이스에 대해 설명했습니다.