:: Enseignements :: Licence :: L3 :: 2013-2014 :: Programmation Objet avec Java ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) |
Table de hachage, itérateur, liste
|
Exercice 1 - Association et contrat sur les Objets
Sachant que la classe
Pair est définie comme ceci :
public class Pair<U, V> {
private final U first;
private final V second;
public Pair(U first, V second) {
this.first = first;
this.second = second;
}
public U getFirst() {
return first;
}
public V getSecond() {
return second;
}
@Override
public String toString() {
return first + " " + second;
}
}
-
Pourquoi le code ci-dessous n'affiche pas ce qu'il faut ?
HashMap<Pair<String,String>,String> map=new HashMap<>();
map.put(new Pair<>("jean-paul","sartre"),"mort");
map.put(new Pair<>("elvis","presley"),"vivant");
map.remove(new Pair<>("elvis","presley"));
System.out.println(map);
-
Que doit-on faire pour résoudre le problème ?
-
Et dans ce cas ?
map.put(new Pair<String,String>(null, null),"mort");
Est-ce normal ?
Que doit-on corriger ?
Exercice 2 - Performance sur les listes
Le but de cet exercice est de tester les différences
de performances entre les classes ArrayList
et LinkedList suivant la méthode de parcours utlisée.
Attention, le même code devra permettre de tester les 2 types de listes!
-
Nous allons dans un premier temps chronométrer
le temps d'un parcours d'une List
contenant un million (1 000 000)
d'entiers en utilisant un Iterator.
Utilisez la méthode System.nanoTime()
pour effectuer une mesure de temps.
-
Avez-vous pensé à tester plusieurs fois la même boucle...?
Modifier votre programme pour pouvoir effectuer les tests suivants sur les deux implémentations de
List :
-
parcours de la liste d'un million d'entiers par un itérateur
-
parcours de la liste d'un million d'entiers par un index
-
parcours de la liste d'un million d'entiers par un itérateur en ordre inverse
Comparer les résultats et expliquer les différences.
© Université de Marne-la-Vallée