}
}
L’affectation par référence peut être la source de nombreux dysfonctionnements imprévus voire plantages. Pour recopier un
tableau dans un autre, vous avez deux possibilités :
q Copier via une boucle chaque élément du tableau dans l’autre.
q Utiliser une méthode (fonction) appelée arraycopy qui copie des éléments d’un premier tableau vers un second
tableau.
Les deux cas sont traités dans l’exemple suivant.
class chap5_tabcopie {
public static void main(String[] args) {
int[] t={2,7,9,10,11,14,17,18,20,22};
int[] copie;
int i;
copie=new int[t.length];
/* méthode 1 : boucle */
for(i=0;i
/* méthode 2 : arraycopy */
System.arraycopy(t,0,copie,0,t.length);
System.out.println(t[2]);
copie[2]=5;
System.out.println(t[2]);
}
}
Java sait manipuler des tableaux à plusieurs dimensions. Selon le principe précédent, le nom du tableau représente une
référence sur le tableau en mémoire. Dans un tableau à n dimensions, chaque dimension référence son propre tableau
indépendant en mémoire. Chaque indice de la première dimension référence un tableau pour chaque deuxième dimension.
C’est ainsi qu’il est possible que le nombre d’indices de la deuxième dimension (ou de la troisième, quatrième, etc.) ne soit pas
le même selon l’indice de la première dimension. La suite vous présente quelques éléments pratiques.
Vous déclarez un tableau à n dimensions en plaçant autant de crochets que de dimensions souhaitées :
/* deux dimensions */
int[][] t1 ;
int t2[][] ;
/* trois dimensions */
int[][][] t3 ;
int t4[][][] ;
Pour indiquer le nombre d’éléments, faites comme pour une seule dimension, placez le nombre d’indices entre les crochets :
t1=new int[5][10] ;
Vous pouvez aussi le faire directement dans la déclaration :
int[][] t2=new int[6][12] ;
Il est possible de faire varier le nombre d’indices. Imaginez le tableau t2 comme devant stocker les notes de six classes, mais
que le nombre d’étudiants par classe varie de 17 à 25. Voici comment procéder :
int[][] t2=new int[6][]
t2[0]=new int[17] ;
t2[1]=new int[20] ;
t2[2]=new int[19] ;
t2[3]=new int[25];
...
Chaque élément de la première dimension référence un tableau de n éléments (la seconde dimension), n pouvant être variable.
Pour initialiser le contenu d’un tableau avec des valeurs prédéfinies, comme pour un tableau à une dimension utilisez les
accolades. Seulement ici vous devez imbriquer plusieurs niveaux d’accolades, un niveau par dimension, comme ceci :
Tableaux à n dimensions
- 5 -
© ENI Editions - All rigths reserved - Jonifar lina
99
}
L’affectation par référence peut être la source de nombreux dysfonctionnements imprévus voire plantages. Pour recopier un
tableau dans un autre, vous avez deux possibilités :
q Copier via une boucle chaque élément du tableau dans l’autre.
q Utiliser une méthode (fonction) appelée arraycopy qui copie des éléments d’un premier tableau vers un second
tableau.
Les deux cas sont traités dans l’exemple suivant.
class chap5_tabcopie {
public static void main(String[] args) {
int[] t={2,7,9,10,11,14,17,18,20,22};
int[] copie;
int i;
copie=new int[t.length];
/* méthode 1 : boucle */
for(i=0;i
/* méthode 2 : arraycopy */
System.arraycopy(t,0,copie,0,t.length);
System.out.println(t[2]);
copie[2]=5;
System.out.println(t[2]);
}
}
Java sait manipuler des tableaux à plusieurs dimensions. Selon le principe précédent, le nom du tableau représente une
référence sur le tableau en mémoire. Dans un tableau à n dimensions, chaque dimension référence son propre tableau
indépendant en mémoire. Chaque indice de la première dimension référence un tableau pour chaque deuxième dimension.
C’est ainsi qu’il est possible que le nombre d’indices de la deuxième dimension (ou de la troisième, quatrième, etc.) ne soit pas
le même selon l’indice de la première dimension. La suite vous présente quelques éléments pratiques.
Vous déclarez un tableau à n dimensions en plaçant autant de crochets que de dimensions souhaitées :
/* deux dimensions */
int[][] t1 ;
int t2[][] ;
/* trois dimensions */
int[][][] t3 ;
int t4[][][] ;
Pour indiquer le nombre d’éléments, faites comme pour une seule dimension, placez le nombre d’indices entre les crochets :
t1=new int[5][10] ;
Vous pouvez aussi le faire directement dans la déclaration :
int[][] t2=new int[6][12] ;
Il est possible de faire varier le nombre d’indices. Imaginez le tableau t2 comme devant stocker les notes de six classes, mais
que le nombre d’étudiants par classe varie de 17 à 25. Voici comment procéder :
int[][] t2=new int[6][]
t2[0]=new int[17] ;
t2[1]=new int[20] ;
t2[2]=new int[19] ;
t2[3]=new int[25];
...
Chaque élément de la première dimension référence un tableau de n éléments (la seconde dimension), n pouvant être variable.
Pour initialiser le contenu d’un tableau avec des valeurs prédéfinies, comme pour un tableau à une dimension utilisez les
accolades. Seulement ici vous devez imbriquer plusieurs niveaux d’accolades, un niveau par dimension, comme ceci :
Tableaux à n dimensions
- 5 -
© ENI Editions - All rigths reserved - Jonifar lina
99
