Le but de ce TP noté est d'implanter une vue qui se comporte comme si on insérait un tableau
dans une liste, une opération habituellement appelée splice.
Vous avez le droit de lire le sujet jusqu'au bout, cela vous donnera une bonne idée de là où on veut aller !
Une
SpliceView est vue qui permet de voir un tableau comme inséré au milieu d'une liste.
Par exemple, dans le code suivant avec une liste contenant trois chaînes de caractères et un tableau
contenant deux chaînes de caractères
var list = List.of("foo", "bar", "baz");
var array = new String[] { "1", "2" };
SpliceView<String> spliceView = SpliceView.of(list, 1, array);
la méthode
SpliceView.of(list, start, array) créé une
SpliceView qui
se comporte comme si tous les éléments du tableau
array étaient insérés
à la position
start (ici
1) de la liste.
Si on demande la taille de la
SpliceView, le résultat est 5,
si on demande l'élément à la position
0, le résultat est "foo", si on demande
l'élément à la position
1, le résultat est "1", si on demande l'élément à la
position
2, le résultat est "2", si on demande le résultat à la position
3,
le résultat est "bar" et enfin, si on demande le résultat à la position
3,
le résultat est "baz".
System.out.println(spliceView.size()); // 5
System.out.println(spliceView.get(0)); // foo
System.out.println(spliceView.get(1)); // 1
System.out.println(spliceView.get(2)); // 2
System.out.println(spliceView.get(3)); // bar
System.out.println(spliceView.get(4)); // baz
Si on demande l'affichage de la
SpliceView, celle-ci insère un caractère '@' suivi
d'un espace devant l'élément qui est à l'endroit où le tableau est inséré (le premier élément
du tableau).
System.out.println(spliceView); // [foo, @ 1, 2, bar, baz]
De plus, on va vouloir que la classe
SpliceView se comporte comme une liste
(
java.util.List) comme cela, on va pouvoir utiliser
SpliceView avec toutes les méthodes
qui prennent une liste en paramètre.
Des tests unitaires correspondant à l'implantation sont ici :
SpliceViewTest.java
Note : comme on utilise les tests unitaires JUnit sans Maven, dans la configuration de votre projet, il faut ajouter
la librairie JUnit 5, soit à partir du fichier
SpliceViewTest.java, en cliquant sur l'annotation
@Test et en sélectionnant le quickfix "Fixup project ...", soit en sélectionnant les "Properties" du projet
(avec le bouton droit de la souris sur le projet) puis en ajoutant la librairie JUnit 5 (jupiter) au ClassPath.