>  기사  >  Java  >  이진 검색 비교기를 사용하여 목록에서 사용자 정의 객체를 검색하는 Java 프로그램

이진 검색 비교기를 사용하여 목록에서 사용자 정의 객체를 검색하는 Java 프로그램

WBOY
WBOY앞으로
2023-08-28 16:05:091413검색

이진 검색 비교기를 사용하여 목록에서 사용자 정의 객체를 검색하는 Java 프로그램

Java 객체 정렬을 위한 Java 비교기 인터페이스입니다. Java의 비교기 클래스는 "java.util.comparator"를 호출하여 다양한 객체(Obj 01, Obj 02)를 비교합니다. 이 방법에서는 반환값을 기준으로 객체를 비교할 수 있습니다. 비교는 양수, 동일 또는 음수일 수 있습니다.

이 프로세스는 사용자에게 여러 정렬 순서를 제공합니다. 두 가지 방법을 비교하는 방법에는 여러 가지가 있습니다.

  • public int 비교 클래스(obj 1, obj 2) - 두 개체 간의 비교를 수행합니다.

  • public Boolean equals (obj) - 현재 개체를 지정된 개체와 비교합니다.

Java 컬렉션 클래스 - 데이터 컬렉션의 요소를 정렬하기 위한 정적 메서드를 제공합니다. 이 컬렉션 요소는 TreeMap에서 사용됩니다.

이진 검색을 통해 목록에서 사용자 정의 객체를 검색하기 위해 비교기를 사용하여 Java 코드를 작성하는 방법을 논의하겠습니다.

이진 검색 매개변수 및 해당 구성요소

  • 매개변수

    • 은 특정 배열

    • 입니다.
    • fromindex - 검색할 첫 번째 요소

    • toindex - 검색할 마지막 요소 key - 검색하는 값 검색할 키-값 쌍

    • 비교기

  • 반품

    • 지정된 범위 내에 존재하는 검색 키의 인덱스를 반환합니다.

  • 예외

    • ClassCast

    • 잘못된 매개변수

    • ArrayIndexOutOfBounds

알고리즘

  • 1단계 - 시작하세요.

  • 2단계 - 중간 요소 세트 계산.

  • 3단계 - 키워드를 중간 요소와 비교합니다.

  • 4단계 - 키 요소와 중간 요소의 값이 동일한 경우 결과를 반환합니다.

  • 5단계 - 그렇지 않은 경우 키 값이 중간 요소보다 크면 세트의 오른쪽 절반을 따릅니다

  • 6단계 - 또는 키 값이 중간 요소보다 작으면 위쪽을 따릅니다.

비교기를 사용한 이진 검색 - 구문

으아악

비교기를 사용하여 이진 검색을 통해 목록에서 사용자 정의 개체를 검색하는 데는 잘 알려진 두 가지 구문이 있습니다. 첫 번째 경우에는 목록을 오름차순으로 정렬해야 하며 결과가 정의되지 않은 특정 메서드를 사용하여 프로시저를 호출합니다.

한편, 지정된 객체를 검색하려면 메소드를 호출하는 것이 중요합니다.

팔로우 방법

  • 이진 검색기 및 비교기를 사용하여 목록에서 사용자 정의 개체를 검색하는 방법 1

비교기를 사용하여 목록에서 사용자 정의 개체 검색

이 예제에서는 컬렉션, BinarySearch() 및 비교기 클래스 작업을 사용하여 비교기를 통한 이진 검색 작업을 사용하여 일부 사용자 정의 데이터를 정렬합니다

예 1: 컬렉션, BinarySearch()를 사용하여 목록에서 데이터 찾기

으아악

출력

으아악

예 2: 목록을 오름차순으로 정렬

으아악

출력

으아악

예제 3: 목록을 내림차순으로 정렬하고 인덱스 번호 찾기

으아악

출력

으아악

예 4: 요소 수와 값 찾기

으아악

출력

으아악

결론

이 기사에서는 몇 가지 샘플 코드와 알고리즘을 통해 Java의 Comparable 인터페이스에 대해 배웠습니다. 여기서는 일부 사용자 정의 클래스와 비교기 인터페이스를 선언합니다. 이는 특정 목적을 수행하며 Java 환경에서 특정 데이터를 처리할 수 있도록 합니다.

위 내용은 이진 검색 비교기를 사용하여 목록에서 사용자 정의 객체를 검색하는 Java 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제