Pour ce TP, nous allons utiliser la librairie standard de Java, notamment la classe ArrayList<E>
. Regardez bien les méthodes disponibles.
Écrire une classe Triplet<E>
qui représente un triplet mutable d’éléments d’un même type. Créer les accesseurs nécessaires.
Dans la classe écrire une méthode void randomSwap()
qui reordonne les trois éléments selon une permutation choisie au hasard.
Dans une classe Exo1
écrire les méthodes
public static <E> boolean doublons (ArrayList<E> ls)
qui vérifie si la liste contient des doublonspublic static <E> E unDouble (ArrayList<E> ls)
qui renvoie le premier élément de la liste qui apparait au moins deux fois (ou null
si un tel élément n’existe pas)public static <E> ArrayList<E> tousLesDoubles (ArrayList<E> ls)
qui renvoie une nouvelle liste qui contient tous les éléments qui apparaissent dans ls
au moins deux foispublic static <E> ArrayList<E> simplifier (ArrayList<E> ls)
qui renvoie une nouvelle liste qui contient tous les éléments de ls
mais sans doublonsVous aurez besoin d’utiliser la méthode equals
. Pour deux objets o1,o2
, l’appel o1.equals(o2)
renvoie true
si les deux objets sont “egaux”. Plus de détails sur cette notion d’égalité seront expliquées l’an prochain.
Tester vos méthode avec une liste de String
Créer une classe générique Correspondance <K,V>
. Elle contiendra deux listes de K
et de V
.
La liste de K
ne doit pas contenir de doublons. On va faire correspondre les éléments de la première liste
aux éléments de la deuxième, position par position. Ecrire les méthodes:
public boolean existe (K k)
qui vérifie si k
appartient à la première listepublic boolean insere (K k, V v)
qui ajoute k
a la fin de la première liste et v
à la fin de la deuxième, si k
n’est pas déjà dans la première listepublic boolean remplace (K k, V v)
qui remplace dans la deuxième liste v
à la position correspondante à l’élément k
s’il est dans la première listepublic V get (K k)
qui renvoie l’élément correspondant à k
(ou null
)public boolean efface (K k)
de façon que, après l’avoir appelé su un élément k1
, l’appel à existe (k1)
renvoie false
, et que la correspondence entre les autres éléments est preservéeTester votre classe en associant à des numeros de téléphone les noms de leur titulaires
Dans une classe Exo3
, ecrire une méthode public static Correspondance<Character,ArrayList<String>> regroupe(ArrayList<String> ls)
qui associe à chaque lettre la liste des mots qui commencent par elle.