IGA
3GI/3ISI—JAVA
Série de TP N° 9
Collections
Création d’une Classe Personnalisée : Produit
Nous allons manipuler des produits dans notre atelier. Chaque produit aura une
référence, un nom et un prix. Ajouter getters, setters et toString.
3 Manipulation des Collections avec Produit
A. LinkedList : Gestion d'une liste de produits
Nous allons créer une liste de produits et ajouter/supprimer des éléments
dynamiquement.
import [Link];
public class GestionProduits {
public static void main(String[] args) {
LinkedList<Produit> produits = new LinkedList<>();
// Ajout de produits
[Link](new Produit("P001", "Clavier", 25.99));
[Link](new Produit("P002", "Souris", 15.49));
[Link](new Produit("P003", "Écran", 199.99));
[Link]("Liste des produits : " + produits);
// Suppression d'un produit
[Link]();
[Link]("Après suppression du premier produit : " + produits);
}
}
B. Stack : Historique des Actions d'un Utilisateur
Nous allons utiliser Stack pour gérer l'historique des actions d'un utilisateur dans
un magasin.
import [Link];
public class HistoriqueActions {
public static void main(String[] args) {
Stack<String> historiqueActions = new Stack<>();
// Ajout d'actions
[Link]("Ajout produit P001");
[Link]("Ajout produit P002");
[Link]("Suppression produit P001");
[Link]("Historique des actions : " + historiqueActions);
// Annulation de la dernière action
String derniereAction = [Link]();
[Link]("Dernière action annulée : " + derniereAction);
[Link]("Historique mis à jour : " + historiqueActions);
}
}
C. HashMap : Stockage et Recherche de Produits par Référence
Nous allons stocker les produits dans une HashMap pour les retrouver rapidement
par leur référence.
import [Link];
public class GestionStock {
public static void main(String[] args) {
HashMap<String, Produit> stockProduits = new HashMap<>();
// Ajout de produits dans la HashMap
[Link]("P001", new Produit("P001", "Clavier", 25.99));
[Link]("P002", new Produit("P002", "Souris", 15.49));
[Link]("P003", new Produit("P003", "Écran", 199.99));
// Recherche d'un produit
String refRecherche = "P002";
Produit produitTrouve = [Link](refRecherche);
if (produitTrouve != null) {
[Link]("Produit trouvé : " + produitTrouve);
} else {
[Link]("Produit non trouvé.");
}
// Affichage du stock
[Link]("Stock complet : " + stockProduits);
}
}
4 Exercices Pratiques
Exercice 1 : Gérer une Liste de Produits (LinkedList)
Ajouter des produits dans une LinkedList
Retirer un produit spécifique
Afficher tous les produits triés par prix
Exercice 2 : Implémenter un Historique (Stack)
Ajouter des actions utilisateur dans une pile
Permettre d’annuler plusieurs actions successives
Afficher les actions restantes
Exercice 3 : Améliorer le Stock (HashMap)
Ajouter des produits avec des références uniques
Permettre la modification du prix d'un produit
Rechercher et afficher un produit en fonction de sa référence.