ListeChaineeIterable.java
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 }