Les Tableaux en Java – déclaration, initialisation et le parcours d’un tableau

Les tableaux

Ils sont dérivés de la classe Object : il faut utiliser des méthodes pour y accéder dont font parti des messages de Object tel que equals() ou getClass(). Le premier élément possède l’indice 0.
La déclaration des tableaux
Java permet de placer les crochets après ou avant le nom du tableau dans la déclaration.

Exemple :
int tableau[ ] = new int[50]; // déclaration et allocation
OU int[ ] tableau = new int[50];
OU int tab[ ]; // déclaration
tab = new int[50]; //allocation

Java ne supporte pas directement les tableaux à plusieurs dimensions : il faut déclarer un tableau de tableau.
Exemple :
float tableau[][] = new float[10][10];
La taille des tableaux de la seconde dimension peut ne pas être identiques pour chaque occurrences.
Exemple :
int dim1[ ][ ] = new int[3][ ];
dim1[0] = new int[4];
dim1[1] = new int[9];
dim1[2] = new int[2];

Chaque élément du tableau est initialisé selon son type par l’instruction new : 0 pour les numériques, ‘\0′ pour les caractères, false pour les booléens et nil pour les chaines de caractères et les autres objets.
L’initialisation explicite d’un tableau
Exemple :
int tableau[5] = {10,20,30,40,50};
int tableau[3][2] = {{5,1},{6,2},{7,3}};

La taille du tableau n’est pas obligatoire si le tableau est initialisé à sa création.
Exemple :
int tableau[] = {10,20,30,40,50};
Le nombre d’élément de chaque lignes peut ne pas être identique :
Exemple :
int[ ][ ] tabEntiers = {{1,2,3,4,5,6},
{1,2,3,4},
{1,2,3,4,5,6,7,8,9}};

Le parcours d’un tableau
Exemple :
for (int i = 0; i < tableau.length ; i ++) { ... }
La variable length retourne le nombre d’éléments du tableau.
Pour passer un tableau à une méthode, il suffit de déclarer les paramètres dans l’en tête de la méthode
Exemple :
public void printArray(String texte[ ]){ ...
}

Les tableaux sont toujours transmis par référence puisque se sont des objets.
Un accès a un élément d’un tableau qui dépasse sa capacité, lève une exception du type
java.lang.arrayIndexOutOfBoundsException.

Leave a Reply