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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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