2010-03-04 3 views
6

Я хочу сохранить массив, возвращенный методом, в другой массив. Как я могу это сделать?Как сохранить массив, возвращаемый методом в Java

public int[] method(){ 
    int z[] = {1,2,3,5}; 
    return z; 
} 

Когда я вызываю этот метод, как сохранить возвращаемый массив (z) в другой массив?

+0

ли вы имеете в виду копирование массива, или просто присваивая результат этого метода переменной, так что вы можете использовать его? – extraneon

+0

Вы хотите добавить результаты в другой массив? Как и в, вы начали с foo = {9, 9, 9}, затем после вызова метода вы хотите добавить их в foo, чтобы foo стал {9, 9, 9, 1, 2, 3, 5}? – Douglas

ответ

13
public int[] method() { 
    int z[] = {1,2,3,5}; 
    return z; 
} 

Описанный выше метод не возвращает массив пар SE, вместо этого он возвращает ссылку на массив. В вызывающей функции вы можете получить возвращаемое значение в другой ссылки, как:

int []copy = method(); 

После этого copy также будет ссылаться на тот же массив, который z имел в виду прежде.

Если это не то, что вы хотите, и вы хотите создать копию массива, вы можете создать копию, используя System.arraycopy.

3
int[] x = method(); 
+0

Большое спасибо, int [] x = method(); Спасибо большое. –

4

int [] anotherArray = method();

Вы хотите сделать еще одну физическую копию массива?

Затем используйте

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
+0

Почему не просто .clone()? – Ingo

0

Вы уверены, что вы должны копировать?

int[] myArray = method(); // now myArray can be used 
+1

интересно, можем ли мы использовать цикл for здесь? –

1

Try: -

int arr[]=mymethod(); 

//caling method it stores in array 

public int[] mymethod() 
{ 

    return arr; 

} 
+1

Добро пожаловать в Stackoverflow! Нет необходимости дублировать другие ответы. Особенно на вопрос ответил 2 года назад. –

Смежные вопросы