Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Arrays.binarySearch()

Быстро ищет значение в отсортированном массиве делением пополам.

Доступно с: Java 1.2

Синтаксис

static int binarySearch(int[] a, int key)

Параметры

ПараметрТипОписание
aint[], T[], …Массив, отсортированный по возрастанию.
keyelement typeЧто искать.

Возвращаемое значение

intИндекс найденного элемента или отрицательное число, если его нет.

Примеры

Поиск в отсортированном массиве:

void main() {
    int[] numbers = {3, 8, 15, 21, 42};
    IO.println(Arrays.binarySearch(numbers, 21));
    IO.println(Arrays.binarySearch(numbers, 10));
}

Результат:

3
-3

Примечания

Если элемента нет, результат равен -(точка вставки) - 1: для 10 точка вставки — 2, поэтому -3. Для неотсортированного массива результат непредсказуем — сначала вызовите Arrays.sort(). Для одного поиска в небольшом массиве хватит обычного цикла.

См. также

  • Arrays.sort() — Сортирует массив на месте — по возрастанию или по заданному компаратору.
  • String.indexOf() — Находит позицию первого вхождения символа или подстроки.

Вопросы и ответы по теме

В учебнике

  • Класс Arrays — Утилиты класса java.util.Arrays: toString, sort, fill, copyOf, copyOfRange, equals и binarySearch.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.