2010-03-04 15 views
6

Quiero almacenar la matriz devuelta por un método en otra matriz. ¿Cómo puedo hacer esto?Cómo almacenar una matriz devuelta por un método en Java

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

Cuando llamo a este método, ¿cómo puedo almacenar la matriz devuelta (z) en otra matriz?

+0

Qué quiere decir la copia de la matriz, o simplemente asignando el resultado de este método a una variable para que pueda usarlo? – extraneon

+0

¿Quiere decir agregar los resultados en otra matriz? Como en, comenzaste con foo = {9, 9, 9}, luego de llamar a tu método, ¿quieres agregarlos a foo de modo que foo se convierta en {9, 9, 9, 1, 2, 3, 5}? – Douglas

Respuesta

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

El método anterior no devuelve un array par se, en lugar de ello devuelve una referencia a la matriz. En la función de llamada puede obtener este valor de retorno en otra referencia como:

int []copy = method(); 

Después de este copy también se refieren a la misma matriz que se z refiero a antes.

Si esto no es lo que desea y desea crear una copia de la matriz, puede crear una copia usando System.arraycopy.

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

Muchas gracias, int [] x = method(); funcionó perfectamente, gracias. –

4

int [] anotherArray = method();

¿Desea hacer otra copia física de la matriz?

A continuación, utilice

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

¿Por qué no simplemente .clone()? – Ingo

0

¿Seguro que tiene que ¿dupdo?

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

pregunta si podemos usar un bucle for aquí? –

1

Probar: -

int arr[]=mymethod(); 

//caling method it stores in array 

public int[] mymethod() 
{ 

    return arr; 

} 
+1

¡Bienvenido a Stackoverflow! No hay necesidad de duplicar otras respuestas. Especialmente en una pregunta respondida hace 2 años. –

Cuestiones relacionadas