:: Enseignements :: ESIPE :: E3INFO :: 2012-2013 :: Programmation Objet avec Java ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) |
Table de hachage, Listes, Comparaisons
|
Exercice 1 - Association et contrat sur les Objets
Sachant que la classe
Pair est définie comme ceci :
public class Pair {
private final String first;
private final String second;
public Pair(String first, String second) {
this.first=first;
this.second=second;
}
public String getFirst() {
return first;
}
public String 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> map=new HashMap<Pair,String>();
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 ?
Exercice 2 - Performance sur les listes
Le but de cet exercice est de tester les différences
de performance entre les classes ArrayList
et LinkedList sur différents algorithmes.
-
Nous allons dans un premier temps chronométrer
le temps d'un parcours d'une ArrayList
contenant un million (1 000 000)
d'entiers en utilisant un Iterator
puis un index pour le parcours.
Utilisez la méthode
System.nanoTime()
pour effectuer une mesure de temps.
-
Modifier votre programme pour pouvoir facilement chronométrer
le parcours dans le cas d'une ArrayList ou d'une
LinkedList avec le même code.
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
Comparer les différents résultats et expliquer les différences.
Exercice 3 - Ordre plus ou moins naturel
L'objectif de cet exercice est de manipuler les méthodes de tri
(sort) de la classe Arrays.
- Ecrire une classe Tri avec sa méthode main
qui affiche successivement le tableau de ses arguments sur la ligne
de commande (args):
- dans l'ordre où ils sont saisis par l'utilisateur
- dans l'ordre lexicographique (ordre naturel des String)
- dans l'ordre de la chaîne la plus courte à la chaîne la plus longue.
-
Ecrire une classe TriPair dont la méthode main, sur
le même principe que la classe précédente, réalise les opérations suivantes:
- construit une liste de Pair à partir du tableau args
(si le nombre d'argument est impair, elle lèvera une exception)
Affiche ces paires dans l'ordre où elles ont été saisies par l'utilisateur
- Affiche ces paires dans l'ordre naturel des Pair (qui est
l'ordre lexicographique de first, puis de second)
- Affiche ces paires dans l'ordre du nombre de caractères dans les
champs first et, à nombre de caractères égaux, l'ordre
lexicographique de second).
© Université de Marne-la-Vallée