2010-03-04 9 views
6

Je souhaite stocker le tableau renvoyé par une méthode dans un autre tableau. Comment puis-je faire ceci? Lorsque j'appelle cette méthode, comment puis-je stocker le tableau retourné (z) dans un autre tableau?Comment stocker un tableau renvoyé par une méthode en Java

+0

Voulez-vous dire la copie du tableau, ou tout simplement attribuer le résultat de cette méthode à une variable afin que vous puissiez l'utiliser? – extraneon

+0

Voulez-vous dire ajouter les résultats dans un autre tableau? Comme dans, vous avez commencé avec foo = {9, 9, 9}, puis après avoir appelé votre méthode, vous voulez les ajouter à foo de sorte que foo devienne {9, 9, 9, 1, 2, 3, 5}? – Douglas

Répondre

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

Le procédé ci-dessus ne renvoie pas un tableau par soi, au lieu qu'il renvoie une référence à la matrice. Dans la fonction d'appel que vous pouvez gagner cette valeur de retour dans une autre référence comme:

int []copy = method(); 

Après cette copy aussi référence au même tableau que z a été référenceurs auparavant.

Si ce n'est pas ce que vous voulez et que vous voulez créer une copie du tableau, vous pouvez créer une copie en utilisant System.arraycopy.

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

Merci beaucoup, int [] x = méthode(); a parfaitement fonctionné, merci. –

4

int [] anotherArray = méthode();

Voulez-vous créer une autre copie physique de la baie?

Ensuite, utilisez

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

Pourquoi ne pas simplement .clone()? – Ingo

0

Êtes-vous sûr que vous devez copie?

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

se demander si nous pouvons utiliser une boucle for ici? –

1

Essayez: -

int arr[]=mymethod(); 

//caling method it stores in array 

public int[] mymethod() 
{ 

    return arr; 

} 
+1

Bienvenue sur Stackoverflow! Il n'est pas nécessaire de dupliquer d'autres réponses. Surtout sur une question répondue il y a 2 ans. –

Questions connexes