Java ArrayList
En Java, ArrayList
fait partie du Java Collections Framework et se trouve dans le paquet java.util
. Il s'agit d'une implémentation de l'interface List
sous la forme d'un tableau redimensionnable, qui offre un moyen pratique de stocker des collections d'éléments de taille dynamique.
Utilisation
ArrayList
est utilisé lorsque vous avez besoin d'un réseau flexible dont la taille peut être augmentée ou réduite. Il permet un accès aléatoire rapide et convient aux scénarios dans lesquels des opérations de lecture fréquentes sont nécessaires.
Syntax
ArrayList<Type> arrayListName = new ArrayList<Type>();
Type
: Le type d'éléments de la liste.arrayListName
: Le nom de l'instanceArrayList
.
Exemples
Exemple 1 : Opérations de base
import java.util.ArrayList;
public class BasicArrayListExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
System.out.println("Fruits: " + fruits);
fruits.remove("Banana");
System.out.println("After removal: " + fruits);
System.out.println("First fruit: " + fruits.get(0));
}
}
Dans cet exemple, un site ArrayList
de type String
est créé pour stocker les noms de fruits. La méthode add()
est utilisée pour insérer des éléments, remove()
supprime un élément et get()
récupère un élément par son index.
Exemple 2 : Itérer sur une liste de tableaux
import java.util.ArrayList;
public class IterateArrayListExample {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(20);
numbers.add(30);
for (int number : numbers) {
System.out.println(number);
}
}
}
Cet exemple montre comment itérer sur un site ArrayList
à l'aide d'une boucle for-each
. Un site ArrayList
de type Integer
est créé et chaque élément est imprimé sur la console.
Exemple 3 : Tri d'une liste de tableaux
import java.util.ArrayList;
import java.util.Collections;
public class SortArrayListExample {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<>();
names.add("John");
names.add("Alice");
names.add("Bob");
Collections.sort(names);
System.out.println("Sorted names: " + names);
}
}
Dans cet exemple, un site ArrayList
de type String
est trié à l'aide de la méthode Collections.sort()
, qui classe les éléments dans l'ordre naturel.
Opérations supplémentaires
La classe ArrayList
propose plusieurs méthodes pour effectuer des opérations sur les éléments :
- Accès aux éléments : Utilisez la méthode
get()
pour récupérer des éléments par index. - Modifier des éléments : Utilisez la méthode
set()
pour modifier un élément à un indice spécifique. - Suppression d'éléments : Utilisez la méthode
remove()
pour supprimer un élément par index et la méthodeclear()
pour supprimer tous les éléments. - Obtention de la taille de la liste de tableaux : Utilisez la méthode
size()
pour trouver le nombre d'éléments dansArrayList
. - Utilisation d'autres types : Stockez différents types de données dans
ArrayList
en utilisant des classes enveloppantes pour les types primitifs (par exemple,Integer
,Boolean
).
Conseils et bonnes pratiques
- Capacité initiale : Si la taille du site
ArrayList
est connue à l'avance, spécifiez une capacité initiale afin d'améliorer les performances et de réduire le besoin de redimensionnement.ArrayList list = new ArrayList<>(50); // Initial capacity of 50
- Type Sécurité : Utilisez les génériques pour garantir la sécurité des types et éviter les erreurs d'exécution.
ArrayList numbers = new ArrayList<>(); // Type-safe declaration
- Évitez les redimensionnements fréquents : Minimisez les ajouts et retraits fréquents d'éléments afin de réduire la charge des opérations de redimensionnement.
- Utilisez un itérateur pour une suppression sûre : Lorsque vous supprimez des éléments au cours de l'itération, utilisez une adresse
Iterator
pour éviterConcurrentModificationException
.Iterator iterator = list.iterator(); while (iterator.hasNext()) { if (condition) { iterator.remove(); } }
- Envisagez une liste de liens pour les insertions/suppressions fréquentes : Si des insertions et des suppressions fréquentes sont nécessaires, envisagez d'utiliser
LinkedList
, qui offre de meilleures performances pour ce type d'opérations.