Maîtriser les Tableaux Java : Guide Complet pour une Gestion Efficace des Données
Java fournit une structure de données, le tableau, qui stocke une collection séquentielle de taille fixe d'éléments du même type. Un tableau est utilisé pour stocker une collection de données, mais il est souvent plus utile de considérer un tableau comme une collection de variables du même type.
Au lieu de déclarer des variables individuelles, telles que number0, number1, ..., et number99, vous déclarez une variable de tableau unique telle que numbers et utilisez numbers[0], numbers[1], ..., numbers[99] pour représenter des variables individuelles.
Ce tutoriel présente comment déclarer des variables de tableau, créer des tableaux et traiter des tableaux en utilisant des variables indexées.
Déclaration de variables de tableau
Pour utiliser un tableau dans un programme, vous devez déclarer une variable pour référencer le tableau, et vous devez spécifier le type de tableau que la variable peut référencer. Voici la syntaxe pour déclarer une variable de tableau :
Syntaxe
dataType[] arrayRefVar; // façon préférée. ou dataType arrayRefVar[]; // fonctionne mais pas la façon préférée.
Note – Le style dataType[] arrayRefVar est préféré. Le style dataType arrayRefVar[] vient du langage C/C++ et a été adopté en Java pour accommoder les programmeurs C/C++.
Exemple
Les extraits de code suivants sont des exemples de cette syntaxe :
double[] myList; // façon préférée. ou double myList[]; // fonctionne mais pas la façon préférée.
Création de tableaux
Vous pouvez créer un tableau en utilisant l'opérateur new avec la syntaxe suivante :
Syntaxe
arrayRefVar = new dataType[arraySize];
L'instruction ci-dessus fait deux choses :
Elle crée un tableau en utilisant new dataType[arraySize].
Elle assigne la référence du tableau nouvellement créé à la variable arrayRefVar.
La déclaration d'une variable de tableau, la création d'un tableau et l'assignation de la référence du tableau à la variable peuvent être combinées en une seule instruction, comme montré ci-dessous :
dataType[] arrayRefVar = new dataType[arraySize];
Alternativement, vous pouvez créer des tableaux comme suit :
dataType[] arrayRefVar = {value0, value1, ..., valuek};
Les éléments du tableau sont accessibles via l'index. Les indices des tableaux sont basés sur 0 ; c'est-à-dire qu'ils commencent à 0 jusqu'à arrayRefVar.length-1.
Exemple
L'instruction suivante déclare une variable de tableau, myList, crée un tableau de 10 éléments de type double et assigne sa référence à myList :
double[] myList = new double[10];
L'image suivante représente le tableau myList. Ici, myList contient dix valeurs double et les indices vont de 0 à 9.
Traitement des tableaux
Lors du traitement des éléments de tableau, nous utilisons souvent soit la boucle for soit la boucle foreach car tous les éléments d'un tableau sont du même type et la taille du tableau est connue.
Exemple
Voici un exemple complet montrant comment créer, initialiser et traiter des tableaux :
Live Demopublic class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Affiche tous les éléments du tableau
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
// Somme de tous les éléments
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println("Total is " + total);
// Trouver l'élément le plus grand
double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
}
System.out.println("Max is " + max);
}
}
Cela produira le résultat suivant :
Sortie
1.9 2.9 3.4 3.5 Total is 11.7 Max is 3.5
Les boucles foreach
JDK 1.5 a introduit une nouvelle boucle for connue sous le nom de boucle foreach ou boucle for améliorée, qui vous permet de parcourir le tableau complet séquentiellement sans utiliser de variable d'index.
Exemple
Le code suivant affiche tous les éléments du tableau myList :
Live Demopublic class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Affiche tous les éléments du tableau
for (double element: myList) {
System.out.println(element);
}
}
}
Cela produira le résultat suivant :
Sortie
1.9 2.9 3.4 3.5
Passage de tableaux aux méthodes
Tout comme vous pouvez passer des valeurs de type primitif aux méthodes, vous pouvez également passer des tableaux aux méthodes. Par exemple, la méthode suivante affiche les éléments d'un tableau int :
Exemple
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
Vous pouvez l'invoquer en passant un tableau. Par exemple, l'instruction suivante invoque la méthode printArray pour afficher 3, 1, 2, 6, 4, et 2 :
Exemple
printArray(new int[]{3, 1, 2, 6, 4, 2});
Retour d'un tableau depuis une méthode
Une méthode peut également retourner un tableau. Par exemple, la méthode suivante retourne un tableau qui est l'inversion d'un autre tableau :
Exemple
public static int[] reverse(int[] list) {
int[] result = new int[list.length];
for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
result[j] = list[i];
}
return result;
}
La classe Arrays
La classe java.util.Arrays contient diverses méthodes statiques pour trier et rechercher dans les tableaux, comparer les tableaux et remplir les éléments de tableau. Ces méthodes sont surchargées pour tous les types primitifs.
| N° | Méthode et Description |
|---|---|
| 1 | public static int binarySearch(Object[] a, Object key) Recherche le tableau spécifié d'Objets (Byte, Int, double, etc.) pour la valeur spécifiée en utilisant l'algorithme de recherche binaire. Le tableau doit être trié avant d'appeler cette méthode. Retourne l'index de la clé de recherche, si elle est contenue dans la liste ; sinon, retourne ( – (point d'insertion + 1)). |
| 2 | public static boolean equals(long[] a, long[] a2) Retourne true si les deux tableaux spécifiés de longs sont égaux l'un à l'autre. Deux tableaux sont considérés égaux s'ils contiennent le même nombre d'éléments, et tous les paires correspondantes d'éléments dans les deux tableaux sont égaux. Retourne true si les deux tableaux sont égaux. La même méthode pourrait être utilisée par tous les autres types de données primitifs (Byte, short, Int, etc.) |
| 3 | public static void fill(int[] a, int val) Assigne la valeur int spécifiée à chaque élément du tableau spécifié d'ints. La même méthode pourrait être utilisée par tous les autres types de données primitifs (Byte, short, Int, etc.) |
| 4 | public static void sort(Object[] a) Trie le tableau spécifié d'objets dans un ordre croissant, selon l'ordre naturel de ses éléments. La même méthode pourrait être utilisée par tous les autres types de données primitifs (Byte, short, Int, etc.) |
Java
- Maîtriser les tableaux C# : Déclaration, initialisation et opérations
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Techniques de copie de tableaux en Java : Guide complet
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Les tableaux en C++ : Déclaration, initialisation et techniques avec pointeurs
- Maîtriser l'allocation de tableaux dynamiques en C++ : Guide pratique avec exemples de code
- Tutoriel Java Arrays : Déclaration, création et initialisation – Code d'exemple