Arrays.binarySearch()
Быстро ищет значение в отсортированном массиве делением пополам.
Доступно с: Java 1.2
Синтаксис
static int binarySearch(int[] a, int key)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| a | int[], T[], … | Массив, отсортированный по возрастанию. |
| key | element 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.