@MaxRybalkin
Изучаю JAVA

Какова будет связь методов System.arraycopy() и Arrays.binarySearch() при таком использовании?

Здесь краткий наглядный интерфейс System.arraycopy()
KBdLavZv1Mg.jpg
А это - перевод оф.документации о работе Arrays.binarySearch():
Если объект при поиске отсутствует, то возвращается значение (-(точка вставки) – 1).
Точка вставки определяется как точка, в которой ключ будет вставлен в массив:
1) Index первого элемента в диапазоне больше, чем ключ
2) toIndex, если все элементы в диапазоне меньше указанного ключа. Обратите внимание, что это гарантирует, что возвращаемое значение будет >= 0 тогда и только тогда, когда ключ найден.


Вопрос - будет ли возвращаемый int метода binarySearch() использоваться в arraycopy(), как позиция в конечном массиве (4-ая строка картинки)?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Не совсем понятен вопрос, вы бы лучше кодом кинули что именно у вас вызывает вопрос.
А так на заметку
- для binarySearch массив всегда должен быть отсортирован иначе поведение будет ошибочно и непредсказуемо
- binarySearch вернет позицию искомого элемента или -1 если его нет(или если массив не отсортирован)

Условно говоря у вас следующая картина и в принципе тут все крайне понятно что и откуда.
int sourcePos = Arrays.binarySearch(source_arr,40);  //3
int destPos     = Arrays.binarySearch(dest_arr,65);     //5
int len =4;
System.arraycopy(source_arr, sourcePos, 
                              dest_arr,    destPos,     len);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы