Sei sulla pagina 1di 3

POO Avancée

TD POO Avancée : Les


Collections

EXERCICE 1 :

On veut représenter des comptes bancaires et les personnes titulaires de ces comptes. Un
titulaire peut avoir plusieurs comptes.

Seule la banque peut créer des nouveaux comptes. Quand elle crée un nouveau compte, elle
l’ajoute à la liste des comptes de chacun des titulaires de ce compte et elle l’ajoute aussi à sa
propre liste de comptes. De même, chaque nouveau compte créé se voit attribuer par la banque
un nouveau numéro, exclusif pour ce compte. Pour réaliser la création de comptes, il faut une
méthode dans Banque qui crée un compte avec en paramètre le titulaires et le numéro du compte.
Il peut également être utile d’écrire une méthode permettant d’ajouter un nouveau compte chez
un titulaire.

Indication : Le code suivant donne une solution qu’il vous faut adapter pour utiliser des collections et compléter par
des nouvelles méthodes. Elle possède trois classes principales: Compte, Banque, et Titulaire.

class Banque{
String nom;
Compte Comptes[];

Banque(String n){
Comptes= new Compte[50] ;
nom = n;
}}

class Titulaire{
String nom;
Compte MesComptes[] ;
Titulaire(String n){
nom = n;
MesComptes= new Compte[10] ;
}
}
class Compte{
int numero;
double solde;

void retrait(double m) {
solde = solde - m;
}
void depot(double m){
solde = solde + m;
}}

1
POO Avancée

Question 1: adapter/compléter le code fourni

1. Remplacez les utilisations de Tableau de Compte par celle d’un ArrayList(ListCompte)


pour stocker les comptes d’une banque, et par celle d’un HashSet (SetCompte) pour
stocker les comptes d’un Titulaire.
2. Faites les modifications nécessaires pour les deux classes Banque et Titulaire
3. Ajoutez les méthodes suivantes pour les deux classes :
- Pour la classe Banque :
 Méthode creerCompte qui prend en paramètre le titulaire du compte et le numéro du
compte.
 Méthode Affiche qui fait l’affichage de tous les comptes de la banque

- Pour la classe Titulaire :

 L’ajout d’un compte chez un titulaire,


 L’affichage de tous les comptes d’un titulaire.
 Ajoutez les méthodes nécessaires pour permettre à un titulaire d’effectuer des
opérations de dépôt et de retrait sur un de ses comptes à partir de son numéro
Question 2

a- On désire faire le tri des comptes de la banque dans l’ordre croissant de leur solde. Pour
cela !
 Implémenter l’interface Comparable
 Ecrire une méthode triercompte() qui fait appel à la méthode sort de l’interface
Collection
b- un titulaire voudrait savoir le compte ayant le solde le plus grand
 créer une nouvelle classe SoldeComparator qui implémente l’interface Comparator
 Écrire une fonction permettant de retourner le numéro de compte ayant le maximum
de solde

EXERCICE 2 :

Le code ci-dessous ne compile pas à cause de deux instructions illégales.


1- Précisez ces deux instructions et dites pourquoi génèrent-elles ces erreurs
2- Remplacez ces deux instructions par les instructions adéquates

public class TestHashMap {

public static void main(String[] args) {

Map<String, Integer> vehicules = new HashMap<String, Integer>();


vehicules.put("BMW", 5);
vehicules.put("Mercedes", 3);
vehicules.put("Audi", 4);
vehicules.put("Ford", 6);

System.out.println("total des vehicules est "+ vehicules.size());

2
POO Avancée

//on veut parcourir et afficher les cles de la hashMap

ArrayList Cles = vehicules.keySet();


for( Object cle :Cles)
System.out.println(cle);

//on veut parcourir et afficher les valeurs de la hashMap

Set valeurs = (Set) vehicules.values() ;


for ( Object val : valeurs )
System.out.println( " la valeur est : " +val) ;

//on fait la recherche de la valeur de la clé "Audi"

String searchKey = "Audi";


if(vehicules.containsKey(searchKey))
System.out.println("le total " + vehicules.get(searchKey) +" "+ searchKey + "
voitures!\n");

//effacer tous les valeurs de la hashMap

vehicules.clear();
System.out.println("apres l'operation clear , size: " + vehicules.size());
}
}

Sachant que l’affichage sera de cette forme la

total des vehicules est 4


Audi
Ford
BMW
Mercedes
la valeur est : 4
la valeur est : 6
la valeur est : 5
la valeur est : 3
le total 4 Audi voitures!

apres l'operation clear , size: 0

Potrebbero piacerti anche