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.
INGInious