0% ont trouvé ce document utile (0 vote)
3 vues4 pages

Chap9 Java

Le chapitre 9 traite du Framework des Collections en Java, qui permet de stocker et manipuler des données de manière dynamique. Il présente trois principales familles de collections : List (pour l'ordre et les doublons), Set (pour l'unicité) et Map (pour les paires clé/valeur). Chaque type de collection a ses caractéristiques et cas d'usage spécifiques, facilitant le choix selon les besoins des développeurs.

Transféré par

karel Towanou
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues4 pages

Chap9 Java

Le chapitre 9 traite du Framework des Collections en Java, qui permet de stocker et manipuler des données de manière dynamique. Il présente trois principales familles de collections : List (pour l'ordre et les doublons), Set (pour l'unicité) et Map (pour les paires clé/valeur). Chaque type de collection a ses caractéristiques et cas d'usage spécifiques, facilitant le choix selon les besoins des développeurs.

Transféré par

karel Towanou
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

DR ZOTCHI GIOVANI – CHAP9 – JAVA 0197991288

Jusqu'à présent, pour stocker plusieurs éléments, nous avons utilisé des tableaux (int[],
String[]). Le problème majeur des tableaux en Java est que leur taille est fixe. Si vous
créez un tableau de 10 cases, vous ne pouvez pas en ajouter une 11ème.

C'est ici qu'intervient le Framework des Collections : un ensemble d'outils puissants fournis
par Java pour stocker, manipuler et rechercher des données de manière dynamique (la taille
s'adapte automatiquement).

Chapitre 9 : Les Collections (List, Set, Map)


Le framework des collections est vaste, mais il se divise principalement en trois grandes
familles que tout développeur Java doit maîtriser.

9.1 Prérequis : Les Génériques (< >) et les Classes


Enveloppes (Wrappers)
Les collections en Java ne peuvent stocker que des objets, pas des types primitifs (int,
double, boolean).

Pour contourner cela, Java propose des "Classes Enveloppes" (Wrappers) pour chaque type
primitif :

 int $\rightarrow$ Integer


 double $\rightarrow$ Double
 boolean $\rightarrow$ Boolean
 char $\rightarrow$ Character

De plus, pour indiquer à Java quel type d'objet une collection va contenir, on utilise les
Génériques, symbolisés par des chevrons < >. Cela évite de mélanger des pommes et des
bananes dans la même liste.

9.2 La famille List : L'ordre et les doublons


Une List est une collection ordonnée (les éléments gardent l'ordre dans lequel ils ont été
insérés) qui accepte les doublons. On accède aux éléments via leur index (comme pour les
tableaux).

L'implémentation la plus utilisée est l'ArrayList.

Java
import [Link];
import [Link];

public class TestList {


public static void main(String[] args) {
// Déclaration et instanciation d'une liste de chaînes de
caractères
List<String> prenoms = new ArrayList<>();

// Ajouter des éléments

1
DR ZOTCHI GIOVANI – CHAP9 – JAVA 0197991288

[Link]("Alice");
[Link]("Bob");
[Link]("Alice"); // Les doublons sont autorisés !

// Accéder à un élément (index 0)


[Link]("Premier prénom : " + [Link](0));

// Connaître la taille (équivalent de .length pour les tableaux)


[Link]("Taille de la liste : " + [Link]());

// Supprimer un élément
[Link]("Bob"); // ou [Link](1);

// Parcourir la liste
for (String p : prenoms) {
[Link](p);
}
}
}

9.3 La famille Set : L'unicité absolue


Un Set est une collection qui n'accepte STRICTEMENT AUCUN doublon. Si vous
essayez d'ajouter un élément qui existe déjà, la collection l'ignore tout simplement.

L'implémentation la plus courante est le HashSet. Attention, le HashSet ne garantit pas


l'ordre des éléments.

Java
import [Link];
import [Link];

public class TestSet {


public static void main(String[] args) {
Set<Integer> nombres = new HashSet<>();

[Link](10);
[Link](20);
[Link](10); // Ignoré silencieusement ! Ce n'est pas une
erreur.

[Link]("Taille du Set : " + [Link]()); // Affiche


2

// Vérifier si un élément existe (très rapide avec un HashSet)


if ([Link](20)) {
[Link]("Le nombre 20 est présent.");
}
}
}

Cas d'usage typique : Stocker les adresses e-mail d'une newsletter pour être sûr de ne jamais
envoyer deux fois le même mail à la même personne.

2
DR ZOTCHI GIOVANI – CHAP9 – JAVA 0197991288

9.4 La famille Map : Les paires Clé/Valeur


Une Map (ou dictionnaire) est un peu à part. Elle ne stocke pas des éléments simples, mais des
paires associant une Clé à une Valeur.

 Les clés sont uniques (comme un numéro de sécurité sociale).


 Les valeurs peuvent être dupliquées (comme le prénom des personnes).

L'implémentation reine est la HashMap.

Java
import [Link];
import [Link];

public class TestMap {


public static void main(String[] args) {
// <TypeDeLaClé, TypeDeLaValeur>
Map<String, Integer> notes = new HashMap<>();

// Ajouter des paires clé/valeur (on utilise put, pas add)


[Link]("Alice", 18);
[Link]("Bob", 14);
[Link]("Charlie", 18); // Valeur dupliquée OK

// Si on réutilise une clé existante, ça ÉCRASE l'ancienne valeur


[Link]("Bob", 15); // Bob passe de 14 à 15

// Récupérer une valeur via sa clé


[Link]("Note d'Alice : " + [Link]("Alice")); //
Affiche 18

// Vérifier l'existence d'une clé


if ([Link]("Bob")) {
[Link]("Bob est dans le système.");
}

// Parcourir une Map (on parcourt généralement la liste des clés)


for (String nom : [Link]()) {
[Link](nom + " a eu " + [Link](nom));
}
}
}

3
DR ZOTCHI GIOVANI – CHAP9 – JAVA 0197991288

9.5 Résumé : Lequel choisir ?


C'est une compétence clé de savoir quelle collection utiliser selon le besoin :

Besoin Interface Implémentation Caractéristiques


courante

Garder l'ordre List ArrayList Rapide pour lire, lent pour


d'insertion, doublons insérer au milieu. Très
permis, accès par polyvalent.
index

Aucun doublon, ordre Set HashSet Ultra-rapide pour vérifier si un


sans importance élément existe (contains()).

Associer un identifiant Map HashMap Recherche ultra-rapide via la


unique à une donnée clé. Idéal pour des
dictionnaires ou annuaires.

Vous aimerez peut-être aussi