É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 Collections présentes dans une Collection de Collections.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=>Aet22=>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 ven est la vue inversée :
v.remove('A') doit supprimer les associations 1=>A et 10=>A de mv.get('A').remove(1) doit supprimer l’association 1=>A de mEcrire 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>