Écrire des méthodes paramétrées avec une signature la plus générale possible qui effectue les actions suivantes. Aucune structure de donnée n’est créée par les méthodes demandées ; tout est passé en paramètre.
List
.Collection
de Collection
et qui lui enlève toutes les Collection
vides.Collection
dans une Map
avec la valeur égale à la clef ; Collection
et Map
sont passées en paramètres de la méthode.Collection
tous les éléments des Collection
s présentes dans une Collection
de Collection
s.Collection
d’éléments comparables entre eux (au sens de Comparable
) et un élément max
et en supprime de la Collection
tous les éléments plus grand que max
.Écrire une méthode qui prend une Map
m
et qui renvoie son inverse : une Map
où les clefs sont les valeurs de m
et où un élément x
sera associé à une Collection
(Set
ou List
, il fait choisir la bonne) des clefs auxquelles la valeur x
est associée.
Par exemple, si m
contient les associations :
1=>A
,2=>B
,10=>A
et22=>Z
La Map
retournée contiendra alors :
A=>[1,10]
,B=>[2]
,Z=>[22]
Modifier votre code pour que la Map
retournée soit une vue de m
: toute modification sur la vue doit être rétroactive vers m
. Par exemple, avec l’exemple de m
ci-dessus, si v
en est la vue inversée :
v.remove('A')
doit supprimer les associations 1=>A
et 10=>A
de m
v.get('A').remove(1)
doit supprimer l’association 1=>A
de m
Ecrire une classe ComparablePair, qui réalise la notion de pair d’éléments comparables, ordonnés par ordre lexicographique
Etendre le concept ci-dessus en créant une classe ComparableList, qui doit également implémenter List (ou étendre AbstractList)
Créer une classe ComparableWrapper<T>
dont les instances sont comparables entre eux en utilisant un Comparator<T>