Java — List vs Set vs Map (Collections)
Les collections en Java sont fondamentales. Savoir différencier List, Set et Map est essentiel pour choisir la bonne structure selon le besoin.
1. Idée simple
- List → collection ordonnée avec doublons
- Set → collection sans doublons
- Map → association clé → valeur
2. List
Caractéristiques
- éléments ordonnés
- doublons autorisés
- accès par index
Exemple
List<String> list = new ArrayList<>();
list.add("A");
list.add("A");
list.add("B");
System.out.println(list.get(0)); // A
3. Set
Caractéristiques
- pas de doublons
- pas d’ordre garanti (sauf implémentations spécifiques)
- basé souvent sur un hash
Exemple
Set<String> set = new HashSet<>();
set.add("A");
set.add("A");
set.add("B");
System.out.println(set); // A, B
4. Map
Caractéristiques
- stocke des paires clé → valeur
- clé unique
- accès via clé
Exemple
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
System.out.println(map.get("A")); // 1
5. Comparaison rapide
| Structure | Ordre | Doublons | Accès |
|---|---|---|---|
| List | ✔️ | ✔️ | index |
| Set | ❌ | ❌ | valeur |
| Map | ❌ | clé unique | clé → valeur |
6. Quand utiliser ?
- List → quand l’ordre compte
- Set → quand tu veux éviter les doublons
- Map → quand tu veux associer des données
Pièges fréquents
- croire que Set est ordonné
- oublier que Map a des clés uniques
- utiliser List pour vérifier unicité
7. Questions classiques
Q1
List accepte les doublons ? Oui
Q2
Set accepte les doublons ? Non
Q3
Map stocke quoi ? clé → valeur
Q4
accès rapide par clé ? Map
8. À retenir
- List = ordre + doublons
- Set = unicité
- Map = association clé/valeur
🧾 En résumé
- choisir la bonne collection est crucial
- impact direct sur performance et logique
- chaque structure a un usage précis
Une mauvaise structure peut rendre ton code inefficace ou incorrect.