Java
Chapitre 2: Les tableaux
Dr. Ahmad Khoureich Ka
UADB L2 D2AW
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 1 / 17
Sommaire
1 Les tableaux
Déclaration et initialisation
Tableaux à plusieurs dimensions
Manipulation de tableaux
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 2 / 17
Les tableaux
Les tableaux
+ Un tableau est un objet regroupant un nombre fixé d’éléments
(primitifs ou objets) de même type.
+ Le nombre d’éléments d’un tableau est fixé lors de sa création.
+ Chaque élément est accessible grâce à un indice correspondant à
sa position dans le tableau.
+ Un élément d’un tableau est accessible en spécifiant son indice
entre crochet après le nom du tableau.
+ Les indices commencent à partir de 0.
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 3 / 17
Les tableaux Déclaration et initialisation
Déclaration et initialisation
+ Déclaration
Syntaxe : typeElement[] nomTableau;
Exemple 1 : int[] t;
Exemple 2 : Equation[] equas;
+ Initialisation
Syntaxe : nomTableau = new typeElement[nbElement];
Exemple 1 : t = new int[5];
Exemple 2 : equas = new Equation[3];
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 4 / 17
Les tableaux Déclaration et initialisation
Déclaration et initialisation
+ Initialisation lors de la déclaration avec des éléments connus
Exemple 1 :
int[] t = {10, 20, 30, 40, 50};
Exemple 2 :
Equation equa1 = new Equation(230, -17, 5);
Equation equa2 = new Equation(9, -7, 59);
Equation equa3 = new Equation(-7, 0, 3);
Equation[] equas = {equa1, equa2, equa3};
+ Initialisation élément par élément
Exemple 1 :
t = new int[3];
t[0] = 10; t[1] = 20; t[2] = 30;
Exemple 2 :
equas = new Equation[2];
equas[0] = equa1;
equas[1] = equa2;
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 5 / 17
Les tableaux Déclaration et initialisation
Déclaration et initialisation
Remarque
L’initialisation d’un élément d’un tableau peut se faire à l’aide d’une
expression.
Exemples
float a = 12.5f;
float[] t = {a, 2*a, 3*a, 4*a, 5*a};
equa1[] equas = {null, new Equation(-7, 0, 3), null};
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 6 / 17
Les tableaux Déclaration et initialisation
Déclaration et initialisation
Remarques
+ Un tableau est un objet, ses éléments sont initialisés avec la
valeur par défaut de leur type.
Exemples :
L’instruction int[] t = new int[5]; crée un tableau de 5
entiers initialisés chacun à 0.
L’instruction Equation[] equas = new Equation[2]; crée
un tableau de 2 objets Equation initialisés chacune à null.
+ Un tableau a la propriété length égale au nombre de ses
éléments.
Exemple :
int[] t = {10,20,30,40,50};
System.out.println("Le nombre d'éléments de t est: " + t.length);
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 7 / 17
Les tableaux Tableaux à plusieurs dimensions
Tableaux à plusieurs dimensions
+ Un tableau à plusieurs dimensions est un tableau dont les
éléments sont des tableaux.
+ Déclaration : tableau à 2 dimensions
Syntaxe : typeElement[][] nomTableau;
Exemple : int[][] t;
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 8 / 17
Les tableaux Tableaux à plusieurs dimensions
Tableaux à plusieurs dimensions
+ Initialisation : Syntaxes
Tableau de n1 éléments où chaque élément est un tableau de n2
éléments :
nomTableau = new typeElement[n1][n2];
Tableau de n éléments où chaque élément est un tableau de
dimension pas encore fixée :
nomTableau = new typeElement[n][];
Exemple :
int[][] t1 = new int[5][7];
int[][] t2 = new int[5][];
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 9 / 17
Les tableaux Tableaux à plusieurs dimensions
Tableaux à plusieurs dimensions
+ Initialisation lors de la déclaration avec des éléments connus
Exemple :
int[][] t = { {7, 8, 5, 2, 3}, {1, 4, 2, 3, 6},
{4, 0, 9} };
+ Initialisation élément par élément
Exemple 1 :
int[][] t1 = new int[3][];
t1[0] = new int[3];
t1[1] = new int[2];
t1[2] = new int[5];
Exemple 2 :
int[][] t2 = new int[2][3];
t2[0][0] = 5; t2[0][1] = 3; t2[0][2] = 15;
t2[1][0] = 0; t2[1][1] = 12; t2[1][2] = 7;
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 10 / 17
Les tableaux Manipulation de tableaux
Copie de tableaux
+ Copie de tableaux avec la méthode arraycopy de la classe
System.
public static void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length)
src le tableau source,
srcPos : l’indice de l’élément du tableau source à partir duquel
commence la lecture,
dest : le tableau destination,
destPos : l’indice du tableau destination à partir duquel
commence l’écriture,
length : le nombre d’éléments à copier.
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 11 / 17
Les tableaux Manipulation de tableaux
Copie de tableaux
Exemple : Copier les 3 derniers éléments de tabInt1 dans les 3
premières positions de tabInt2.
int[] tabInt1 = {5,1,4,3,2};
int[] tabInt2 = new int[5];
System.arraycopy(tabInt1, 2, tabInt2, 0, 3);
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 12 / 17
Les tableaux Manipulation de tableaux
Copie de tableaux
+ Copie de tableaux avec la méthode copyOf de la classe
java.util.Arrays.
public static int[] copyOf(int[] original,
int newLength)
original: le tableau source,
newLength: taille du tableau retourné.
Exemple : Copier les éléments de tabInt1 dans un nouveau
tableau tabInt2 de 10 éléments.
int[] tabInt1 = {5,1,4,3,2};
int[] tabInt2 = Arrays.copyOf(tabInt1, 10);
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 13 / 17
Les tableaux Manipulation de tableaux
Copie de tableaux
+ Copie de tableaux avec la méthode copyOfRange de la classe
java.util.Arrays.
public static int[] copyOfRange(int[] original,
int from,
int to)
original: le tableau source,
from: indice de départ pour la copie (inclusif).
to: indice de fin pour la copie (exclusif). Peut être supérieur à la
taille du tableau source.
Exemple : Copier à partir de la positions 1, 3 éléments du tableau
tabInt1 dans un nouveau tableau tabInt2.
int[] tabInt1 = {5,1,4,3,2};
int[] tabInt2 = Arrays.copyOfRange(tabInt1, 1, 4);
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 14 / 17
Les tableaux Manipulation de tableaux
Copie de tableaux
+ Remarque :
Les méthodes copyOf et copyOfRange peuvent être utilisées
avec des tableaux de primitifs ou d’objets,
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 15 / 17
Les tableaux Manipulation de tableaux
Trier les éléments d’un tableau
+ La méthode :
public static void sort(int[] a)
de la classe java.util.Arrays permet de trier tous les
éléments d’un tableau par ordre croissant.
+ La méthode :
public static void sort(int[] a,
int from,
int to)
de la classe java.util.Arrays permet de trier par ordre
croissant les éléments compris entre les indices from (inclusif) et
to (exclusif) d’un tableau.
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 16 / 17
Les tableaux Manipulation de tableaux
Trier les éléments d’un tableau
+ Exemple : Trier par ordre croissant les 3 derniers éléments de
tabInt1
int[] tabInt1 = {5,1,4,3,2};
Arrays.sort(tabInt1, 2, tabInt1.length);
Le tableau tabInt1 devient égale à {5,1,2,3,4}
+ Remarque :
La méthode sort peut être utilisée avec des tableaux de primitifs
ou d’objets,
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 17 / 17