:: Enseignements :: ESIPE :: E4INFO :: 2009-2010 :: Java Avancé ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Map, list, iterable et iterateur |
Exercice 1 - Prendre de la hauteur
Soit la classe
fr.umlv.td.author.Author
:
-
Expliquer ce que fait le code ci-dessous :
-
Faites les changements qui s'imposent pour que le code marche
de façon plus logique.
-
Notez que
Author
est non mutable,
comment peut-on faire pour accélérer les accès à la table de hachage
sachant cela ?
Exercice 2 - Interval
On souhaite pouvoir écrire le code suivant :
-
Quel est le profil de la méthode
rangeIterator
?
-
Implanter de cette méthode en utilisant une classe anonyme.
On souhaite maintenant pouvoir écrire le code suivant :
-
Quel est le profil de la méthode
range
?
-
Écrire une implantation utilisant la méthode
rangeIterator
ainsi qu'une version en une seule méthode.
-
Combien le code donné en exemple effectue-t-il d'allocations ?
Et le code ci-dessous ?
Exercice 3 - J'en veux plus
On cherche à implanter la méthode
twice
qui prend une liste d'entiers et qui renvoie une nouvelle
liste contenant les valeurs de la liste multipliées par deux.
-
Implanter la méthode
twice
.
-
Changer l'implantation pour allouer moins d'éléments en
utilisant le concept de vue.
Pour l'implantation, regarder du côté de
java.util.AbstractList
.
-
Quel est le problème de votre implantation dans le cas
d'un appel à
twice
avec une
LinkedList
?
Tester avec le code suivant :
-
Changer l'implantation de
twice
en fonction du fait que la liste prise en paramètre
implante ou non
java.util.RandomAccess
.
© Université de Marne-la-Vallée