Information

Author(s) Ludovic TAFFIN, Brandon NAITALI
Deadline No deadline
Submission limit No limitation

Sign in

Mission 10 : Q* AList

La classe AList contient une implémentation simple d'un ArrayList sur base d'un tableau dont la taille augmente au fur et à mesure que l'on modifie la liste. Ecrivez le code des principales méthodes de cette classe:

/**
 * Une implémentation partielle d'une ArrayList en utilisant un tableau
 *
 * Cette implémentation supporte les méthodes suivantes :
 *
 * Constructeur : crée une liste vide  •  AList()
 * Insère d’un élément à la position index  •  void add (int index, Object obj)
 * Renvoie l’objet en position index  •  Object get (int index)
 * Remplace l’élément en position index  •  void set (int index, Object obj)
 * Retire et renvoie l’élément en position index  •  Object remove (int index)
 * Renvoie true si obj appartient à la liste  •  boolean contains (Object obj)
 *
 * @author O; Bonaventure
 * @version Novembre 2016
 */
public class AList {
    private Object[] l;

    public static final int INIT_SIZE = 5; // taille initiale d'un AList

    /*
     * @pre -
     * @post a créé une AList initialement vide
     *       permettant de stocker 5 références
     */
    public AList() {
        l = new Object[INIT_SIZE];
    }

    /*
     * @pre o != null
     * @post retourne true si l'objet o se trouve dans l'AList
     */
    public boolean contains(Object o) {
        // Question
    }

    /*
     * @pre -
     * @post retourne l'objet se trouvant à la position index
     *       et null si rien n'est stocké à cette position
     *       ou si index >= length
     */
    public Object get(int index) {
        // Question
    }

    /*
     * @pre -
     * @retourne la taille actuelle de la liste
     */
    public int length() {
        return l.length;
    }

    /*
     * @pre 0 <= index < this.length()
     * @post remplace la référence se trouvant à l'index dans
     *       la liste par la référence à o
     */
    public void set(int index, Object o) {
        // Question
    }

    /*
     * @pre -
     * @post remplace l'objet o dans la liste en position index
     *       Si index >= length, augmente d'abord la taille
     *       de la liste en créant un nouveau tableau et
     *       en y recopiant toutes les références de la liste
     *       this avant de remplacer l'objet o à l'indice index
     */
    public void add(int index, Object o) {
        // Question
    }
}

Vous pouvez tester vos méthodes individuellement.


Question 1: Contains

Ecrivez le corps de la méthode contains

Question 2: Get

Ecrivez le corps de la méthode get

Question 3: Add

Ecrivez le corps de la méthode add

Question 4: Set

Ecrivez le corps de la méthode set