01 package fr.isae.lists;
02
03 import java.util.Iterator;
04
05 /**
06 * <code>ListeChaineeIterable</code> est une <code>Liste</code>
07 * representee sous la forme d'une liste de cellules chainees. Elle
08 * utilise par composition la classe <code>ListeChainee</code> et
09 * delegue les services de l'interface <code>Liste</code> a l'instance
10 * de <code>ListeChainee</code> a laquelle elle est associee. Cette
11 * classe realise l'interface <code>Iterable</code> qui permet d'utiliser
12 * la boucle <code>for</code> sur les collections, cf. corrige
13 *
14 * @author <a href="mailto:garion@isae.fr">Christophe Garion</a>
15 * @version 1.0
16 */
17 public class ListeChaineeIterable implements Liste, Iterable<Double> {
18
19 private ListeChainee listec;
20
21 /**
22 * Creer une liste chainee vide.
23 */
24 public ListeChaineeIterable() {
25 this.listec = new ListeChainee();
26 }
27
28 @Override public int getNbElements() {
29 return this.listec.getNbElements();
30 }
31
32 @Override public double getElement(int pos) {
33 return this.listec.getElement(pos);
34 }
35
36 @Override public void remplacer(int pos, double elt) {
37 this.listec.remplacer(pos, elt);
38 }
39
40 @Override public void ajouter(int pos, double elt) {
41 this.listec.ajouter(pos, elt);
42 }
43
44 @Override public void supprimer(int pos) {
45 this.listec.supprimer(pos);
46 }
47
48 @Override public Iterator<Double> iterator() {
49 return new ListeIterator(this);
50 }
51 }
|