question sur les tableaux

question sur les tableaux - Java - Programmation

Marsh Posté le 26-07-2009 à 00:16:11    

Bonjour !
 
J'apprend le java et en faisant des tests de compilation je me suis rendu compte que la suite d'instructions :

Code :
  1. int [] t;
  2. t={1,2};


 
n'était pas valable alors qu'on peut faire :
 

Code :
  1. int [] t = {1,2};


 
Et cette impossibilité n'est pas précisée dans mon bouquin.
 
C'est gênant dans le cas où je veux faire un tableau à deux indices, j'aimerais pouvoir donner le nombre de lignes puis initialiser ensuite chaque ligne par un tableau en donnant la valeur du tableau comme ceci :
 

Code :
  1. int [] [] t;
  2. t = new int [2] [];
  3. t[0] = {1,2};      // non valable !
  4. t[1] = {1};         // non valable !


 
Et je suis donc obligé de faire :
 

Code :
  1. t = new int [2] [];
  2. int [] t1 = {1,2};
  3. int [] t2 = {1};
  4. t[0]=t1;
  5. t[0]=t2;


 
Pourquoi cette impossibilité ?


Message édité par Profil supprimé le 26-07-2009 à 00:20:06
Reply

Marsh Posté le 26-07-2009 à 00:16:11   

Reply

Marsh Posté le 26-07-2009 à 09:27:52    

il me semble que c'est tout simplement parce que cette syntaxe n'est valable qu'a l'initialisation du tableau...
 
par contre tu dois pouvoir écrire ca je pense:

Code :
  1. int [] [] t = {{1,2}{1}}

Reply

Marsh Posté le 26-07-2009 à 15:02:44    

Tu veux dire valable uniquement à la déclaration ?  
 
Mais pourquoi uniquement valable dans ce cas ?

Reply

Marsh Posté le 26-07-2009 à 15:17:58    


Parce que c'est une forme spéciale (un array initializer) utilisée pour l'initialisation des arrays au moment de leur déclaration: http://java.sun.com/docs/books/jls [...] html#11358

 

Ce n'est pas une syntaxe littérale pour les arrays.

 

Accessoirement, sauf situation spécifique/besoin les arrays java c'est bof :o


Message édité par masklinn le 26-07-2009 à 15:19:05

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 26-07-2009 à 16:33:37    

Ok merci  :jap: Et sinon, t'utilises quoi à la place alors :o ?

Reply

Marsh Posté le 26-07-2009 à 16:48:14    


java.util.List. Initialisées via Arrays.asList ou ArrayList selon le cas (il y a aussi LinkedList, mais son utilisation est moins fréquente)


Message édité par masklinn le 26-07-2009 à 16:48:52

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 26-07-2009 à 17:32:02    

Ok merci pour l'info :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed