Почему когда создаешь копию массива array таким образом то он меняется вслед за копией?
public static void main(String[] args) {
int[] array1 = array;
Arrays.sort(array1);
int ha = Arrays.binarySearch(array1, element);
boolean ye = false;
if (ha >= 0)
ye = true;
System.out.println(ye);
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
}
}
у них зависимость в обе стороны создается? И меняя array1 я меняю и array? если да то почему это происходит?
Андрей
14 уровень
Почему массив array меняется?
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
degreez
5 ноября 2023, 20:41
Вот и пригодился дебаг.. Полазил, поразбирался
В общем из того что я понял, ваш массив array1 ссылается на ту же область, что и массив array, соответственно при сортировке в строке
меняются сразу оба массива.
Если же скопировать значения массива, у массивов будут разные ссылки на области в памяти
То есть заменить строку
на строку
+2
Андрей
5 ноября 2023, 21:40
И в правду же получается я присвоил для array1 значение ссылки array. Уже вылетела из головы эта деталь с присваиваниями). Спасибо теперь разобрался)
0
degreez
5 ноября 2023, 22:07
👍👍
0