Как сохранить массив, возвращаемый методом в Java - PullRequest
6 голосов
/ 04 марта 2010

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

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

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

Ответы [ 6 ]

14 голосов
/ 04 марта 2010
public int[] method() {
    int z[] = {1,2,3,5};
    return z;
}

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

int []copy = method();

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

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

4 голосов
/ 04 марта 2010

int [] anotherArray = method ();

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

Тогда используйте

System.arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length)
3 голосов
/ 04 марта 2010
int[] x = method();
1 голос
/ 09 января 2013

Попробуйте: -

int arr[]=mymethod();

//caling method it stores in array

public int[] mymethod()
{

   return arr;

}
1 голос
/ 04 марта 2010

Если вы хотите дублировать массив, вы можете использовать [этот API] [1]:

http://java.sun.com/javase/6/docs/api/java/util/Arrays.html#copyOf(int[], int)

0 голосов
/ 04 марта 2010

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

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