Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2821 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] (débutant) Copier un tableau à deux dimensions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] (débutant) Copier un tableau à deux dimensions

n°903333
agent007se
<=@_|_@=>
Posté le 20-11-2004 à 09:37:56  profilanswer
 

Salut !
 
J'aimerais savoir si c'est possible de copier des tableaux multidimentionnels ?!
 
J'ai :
 
int dim = x;
 
int[][] tab1 = new int[x][x];
int[][] tab2;
 
J'aimerais copier les valeurs de tab1 dans tab2...
 
Est-ce possible de façon directe (càd genre System.arraycopy(tab1,0,tab2,0,x); ?
Voilà voilà merci bien :)

mood
Publicité
Posté le 20-11-2004 à 09:37:56  profilanswer
 

n°903474
agent007se
<=@_|_@=>
Posté le 20-11-2004 à 15:05:32  profilanswer
 

Un petit up :(...
 
C'est impossible ? Je sais pas moi, comment ça se fait que personne réponde ? :o Pourtant j'ai vu quelques pros défiler sur le forum depuis ce matin... :heink:

n°903483
nraynaud
lol
Posté le 20-11-2004 à 15:17:39  profilanswer
 

en java, les tableaux sont clonables, mais en surface uniquement.
Le JLS précise bien que seule une dimension est clonée dans les tableaux multi-dimentionels ( http://java.sun.com/docs/books/jls [...] html#40879 )
Au passage, je rappelle que les tableaux multi-dimentionnels n'existent pas en java, mais ce sont des tableaux dont le type des éléments est un tableau.
en conséquences la solution doit être un truc du style :

Code :
  1. tab2 = new new int[x][x];
  2. for (int i = 0; i < x; i++)
  3.   tab2[i] = tab1[i].clone();


(pas testé)


---------------
trainoo.com, c'est fini
n°903486
nraynaud
lol
Posté le 20-11-2004 à 15:18:20  profilanswer
 

agent007se a écrit :

Un petit up :(...
 
C'est impossible ? Je sais pas moi, comment ça se fait que personne réponde ? :o Pourtant j'ai vu quelques pros défiler sur le forum depuis ce matin... :heink:

2 secondes, j'étais parti chier au milieu de ma réponse.


---------------
trainoo.com, c'est fini
n°903501
agent007se
&lt;=@_|_@=&gt;
Posté le 20-11-2004 à 15:42:39  profilanswer
 

lol :lol: bon j'attend la suite sagement alors :) en plus t'a eu le temps d'y penser :p puis j'essaierai ! en tous cas merci :)

n°903504
nraynaud
lol
Posté le 20-11-2004 à 15:46:54  profilanswer
 

nan, c'est fini là. on voit pas la transition doigts propres/doigts sales sur internet ...


---------------
trainoo.com, c'est fini
n°903507
agent007se
&lt;=@_|_@=&gt;
Posté le 20-11-2004 à 15:56:06  profilanswer
 

:D arf ok ! bon bah va falloir essayer ça d'urgence... mais d'abord je dois finir ma méthode pour enregistrer un tableau dans un fichier texte et le charger... mais bon ça je préfère trouver seul :heink:

n°903635
agent007se
&lt;=@_|_@=&gt;
Posté le 20-11-2004 à 19:44:08  profilanswer
 

nraynaud a écrit :

en java, les tableaux sont clonables, mais en surface uniquement.
Le JLS précise bien que seule une dimension est clonée dans les tableaux multi-dimentionels ( http://java.sun.com/docs/books/jls [...] html#40879 )
Au passage, je rappelle que les tableaux multi-dimentionnels n'existent pas en java, mais ce sont des tableaux dont le type des éléments est un tableau.
en conséquences la solution doit être un truc du style :

Code :
  1. tab2 = new new int[x][x];
  2. for (int i = 0; i < x; i++)
  3.   tab2[i] = tab1[i].clone();


(pas testé)


 
incompatibles types - found java.lang.Object but expected int[]
 
 :??:
 
 

Code :
  1. public void arraycopy (int [][] M , int [][] X )  {
  2.        for (int r = 0; r < dim; r++){
  3.         for (int c = 0; c < dim; c++){
  4.          for(int i = 0; i < dim; i++){
  5.             X[i] = M[i].clone();
  6.    }}}}


Message édité par agent007se le 20-11-2004 à 19:49:22
n°903964
nraynaud
lol
Posté le 21-11-2004 à 12:53:04  profilanswer
 

agent007se a écrit :

incompatibles types - found java.lang.Object but expected int[]

ah oui merde, le cast.

Code :
  1. tab2 = new new int[x][x];
  2. for (int i = 0; i < x; i++)
  3.    tab2[i] = (int []) tab1[i].clone();


---------------
trainoo.com, c'est fini
n°904006
agent007se
&lt;=@_|_@=&gt;
Posté le 21-11-2004 à 13:55:37  profilanswer
 

nraynaud a écrit :

ah oui merde, le cast.

Code :
  1. tab2 = new new int[x][x];
  2. for (int i = 0; i < x; i++)
  3.    tab2[i] = (int []) tab1[i].clone();




 
NullPointerException à la ligne :

Code :
  1. tab2[i] = (int []) tab1[i].clone();

mood
Publicité
Posté le 21-11-2004 à 13:55:37  profilanswer
 

n°904028
nraynaud
lol
Posté le 21-11-2004 à 14:19:15  profilanswer
 

ah bah oui, ton tableau est vide là. en fait.
il faut faire une boucle pour allouer les ligness aussi.


---------------
trainoo.com, c'est fini
n°904190
agent007se
&lt;=@_|_@=&gt;
Posté le 21-11-2004 à 16:51:53  profilanswer
 

[:ceam]  
 
Justement, c'est ce que j'arrive pas à faire lol... 'fin bon  :o (je cherche ;) )


Message édité par agent007se le 21-11-2004 à 17:03:10
n°904236
nraynaud
lol
Posté le 21-11-2004 à 19:05:31  profilanswer
 

Code :
  1. for (int i =0; i < x; i++)
  2.   tab1[i] = new int[x];


---------------
trainoo.com, c'est fini
n°904250
agent007se
&lt;=@_|_@=&gt;
Posté le 21-11-2004 à 19:33:48  profilanswer
 

Merci beaucoup  :o !! Je vais pouvoir continuer mon initiation à ce merveilleux langague de prog !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] (débutant) Copier un tableau à deux dimensions

 

Sujets relatifs
Trier un tableau de fichier[MySQL/JAVA]pb avec driver ODBC
Afficher tableau en ligne...... explications inside ![C++] Tableau de pointeur de tableau
java, truetype et anti-aliasing[java] un random avec une valeur int
Q. Datacrunching: "Décroiser" un tableau croisé Excel en VBAtableau de session / foreach[resolu]
[java] comment faire en sorte que un Jtextarea[java] telecharger n'importe qu'elle fichier
Plus de sujets relatifs à : [JAVA] (débutant) Copier un tableau à deux dimensions


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR