Java-util-arrays-binarysearch-super-index

提供:Dev Guides
移動先:案内検索

Java.util.Arrays.binarySearch()メソッド

説明

  • java.util.Arrays.binarySearch(T [] a、Tキー、int fromIndex、int toIndex、Comparator <? super T> c)*メソッドは、バイナリ検索アルゴリズムを使用して、指定されたオブジェクトの指定された配列の範囲を検索します。 この呼び出しを行う前に、指定されたコンパレーターに従って範囲を昇順にソートする必要があります。 ソートされていない場合、結果は未定義です。

宣言

以下は* java.util.Arrays.binarySearch(super、index)*メソッドの宣言です

public static <T> int binarySearch(T[] a, T key, int fromIndex, int toIndex, Comparator<? super T> c)

パラメーター

  • a -これは検索される配列です。
  • fromIndex -検索される最初の要素(包括的)のインデックス。
  • toIndex -検索される最後の要素(排他的)のインデックス。
  • キー-これは検索する値です。
  • c -これは、配列の順序付けに使用されるコンパレータです。 null値は、要素の自然順序付けを使用する必要があることを示します。

戻り値

このメソッドは、指定された範囲内の配列に含まれている場合、検索キーのインデックスを返します。それ以外の場合、(-(挿入ポイント)-1)。 挿入ポイントは、キーが配列に挿入されるポイントとして定義されます。キーより大きい範囲の最初の要素のインデックス、または範囲内のすべての要素が指定されたキーより小さい場合はtoIndex。

例外

  • ClassCastException -指定されたコンパレータを使用して相互に比較できない要素が範囲に含まれる場合、またはこのコンパレータを使用して範囲内の要素と検索キーが比較できない場合
  • IllegalArgumentException -fromIndex> toIndexの場合
  • ArrayIndexOutOfBoundsException -fromIndex <0またはtoIndex> a.lengthの場合

次の例は、java.util.Arrays.binarySearch(super、index)メソッドの使用法を示しています。

package com.finddevguides;

import java.util.Arrays;
import java.util.Comparator;

public class ArrayDemo {

   public static void main(String[] args) {

     //initializing unsorted short array
      Short shortArr[] = new Short[]{5, 2, 15, 52, 10};

     //use comparator as null, sorting as natural ordering
      Comparator<Short> comp = null;

     //sorting array
      Arrays.sort(shortArr, comp);

     //let us print all the elements available in list
      System.out.println("The sorted short array is:");
      for (short number : shortArr) {
         System.out.println("Number = " + number);
      }

     //entering the value to be searched
      short searchVal = 15;

     //search between index 1 and 4
      int retVal = Arrays.binarySearch(shortArr, 1, 4, searchVal, comp);
      System.out.println("The index of element 15 is : " + retVal);

     //search between index 0 and 3, where searchVal doesn't exist
      retVal = Arrays.binarySearch(shortArr, 0, 3, searchVal, comp);
      System.out.println("The index of element 15 is : " + retVal);
   }
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

The sorted short array is:
Number = 2
Number = 5
Number = 10
Number = 15
Number = 52
The index of element 15 is : 3
The index of element 15 is : -4