mercredi 19 septembre 2012

Tableau

Tableau Un tableau est une structure de données composée de cases pouvant chacune contenir un élément. Les éléments contenus dans un tableau doivent tous être du même type (int, boolean, String, ...). Chaque élément est accessible par son indice dans le tableau, c'est-à-dire par le numéro de la case qui le contient. En java, les numéros de cases (indices) commencent toujours à zéro. Le premier élément est donc dans la case d'indice 0, le deuxième dans la case d'indice 1, etc.
Exemple : un tableau de 5 éléments booléens. Le deuxième élément du tableau, c'est-à-dire celui d'indice 1 est false.

 

Déclaration et création


On utilise les symboles crochets [] pour indiquer qu'une variable référence un tableau. La syntaxe générale est:
<<type_des_éléments>> [] <<nom_du_tableau>>;
Par exemple :
int[] tab; // tab est de type "tableau de int"
A ce moment, tab permet de désigner un tableau d'entiers, mais aucun tableau n'existe. Pour créer (on dit aussi allouer) le tableau, on va utiliser le mot clé new comme pour créer un objet à partir d'une classe. La syntaxe est :
<<nom_du_tableau>> = new <<type_des_éléments>> [ <<taille_du_tableau>> ] ;
Par exemple :
tab = new int[5];
tab désigne alors un tableau d'entiers contenant 5 éléments. L'utilisation d'un tableau qui n'a pas été alloué provoquera une erreur NullPointerException et l'arrêt immédiat du programme.

Lors de la création d'un tableau avec le mot clé new, toutes les cases du tableau sont initialisées par défaut. Si le tableau contient des nombres (int, double...) toutes les cases contiennent le nombre 0, si le tableau contient des booléens toutes les cases contiennent false, pour tous les autres types, les cases du tableau sont initialisées à null.

Il est également possible de créer et initialiser simultanément un tableau avec des valeurs particulières.
<<nom_du_tableau>> = new  <<type_des_éléments>> [] { <<valeur_1>> , <<valeur_2>>, <<valeur_3>> ... } ;
Par exemple :
String[] tab;
tab = new String[]{ "sudo", "make", "me", "a", "sandwich" }; 
Dans ce cas, Java déduit automatiquement la taille du tableau à créer en fonction du nombre d'éléments donnés entre les accolades. Dans le cas particulier où on déclare et alloue le tableau sur la même ligne, on peut utiliser la syntaxe simplifiée:
String[] tab = { "sudo", "make", "me", "a", "sandwich" };

Taille d'un tableau


Tous les tableaux possèdent automatiquement un attribut public constant entier length qui contient la taille (nombre de cases) du tableau. Exemple :
boolean[] tab = new boolean[8]; // on déclare et alloue un tableau de 8 booléens
int tailleTableau; // on déclare une variable locale entière
tailleTableau = tab.length; // on affecte à la variable locale tailleTableau la longueur du tableau, c'est-à-dire : 8"
Il est impossible de changer la taille d'un tableau après sa création.

Lecture et modification des éléments d'un tableau


L'accès aux éléments d'un tableau se fait également au moyen des symboles crochets []. La syntaxe générale pour désigner un élément d'un tableau est :
<<nom_du_tableau>>[ <<numéro_d_indice>> ]
Exemple 1: pour afficher le troisième élément (indice 2) du tableau tab, on écrit :
System.out.println( tab[2] ); // affiche la valeur de la troisième case du tableau
Exemple 2: pour affecter la valeur du deuxième élément (indice 1) de tab à la variable x :
x = tab[1]; // affecte la valeur de la deuxième case du tableau à la variable x
De la même manière, pour modifier la valeur du deuxième élément (indice 1), on écrit :
tab[1] = 4 ; // met la valeur 4 dans la 2ème case du tableau tab
Avant tout accès à un élément du tableau, Java vérifie systématiquement que l'indice demandé existe bien (c'est-à-dire est compris entre 0 et la taille-1).
Ainsi, l'accès au 6ème élément (d'indice 5) d'un tableau de taille 5 provoquera une erreur ArrayIndexOutOfBoundsException et l'arrêt immédiat du programme.

Documentation officielle


Les spécifications complètes des tableaux Java sont disponibles à cette adresse : http://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html. Vous ne trouverez pas de documentation sur les tableaux directement dans la Javadoc, mais vous pouvez par contre consulter la documentation de la classe utilitaire Arrays qui contient de nombreuses méthodes utiles pour la manipulation de tableaux.

Aucun commentaire:

Enregistrer un commentaire