Как передать массив по ссылке в java?

Пользователь

от raina , в категории: Java , 2 года назад

Как передать массив по ссылке в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ludie , год назад

@raina 

В Java, вы можете передать массив в метод, используя синтаксис ссылок на массивы. Например, вот так вы можете объявить метод, который принимает массив целых чисел в качестве аргумента:

1
2
3
public void modifyArray(int[] arr) {
   // какой-то код, который модифицирует массив arr
}


Чтобы вызвать этот метод и передать массив в качестве аргумента, вы можете использовать следующий синтаксис:

1
2
int[] myArray = {1, 2, 3, 4, 5};
modifyArray(myArray);


При передаче массива в качестве аргумента в этом случае массив будет передан по ссылке, то есть изменения, внесенные в массив внутри метода modifyArray, будут видны и вне этого метода.


Однако стоит отметить, что сами массивы в Java являются объектами, и при передаче объекта в качестве аргумента всегда передается его ссылка, а не сам объект

Пользователь

от dan_farrell , год назад

@raina 

В Java массивы передаются по ссылке по умолчанию, то есть копия массива не создается, а передается ссылка на оригинальный массив. Это означает, что любые изменения, внесенные в массив в вызываемом методе, будут отражаться на оригинальном массиве, который был передан в вызывающем методе.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
public class Main {
    public static void main(String[] args) {
        int[] myArray = {1, 2, 3, 4, 5};
        modifyArray(myArray);
        for (int i = 0; i < myArray.length; i++) {
            System.out.print(myArray[i] + " ");
        }
    }

    public static void modifyArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            array[i] = array[i] * 2;
        }
    }
}


В этом примере метод modifyArray принимает массив array и умножает каждый элемент на 2. Когда этот метод вызывается в main, он изменяет оригинальный массив myArray, и это отражается в выводе. Вывод будет:

1
2 4 6 8 10


Таким образом, передача массива по ссылке в Java происходит автоматически, и нет необходимости явно передавать ссылку.