41 lines
1.0 KiB
Java
41 lines
1.0 KiB
Java
public class FileTableau<E> implements File<E> {
|
|
private static final int CAPACITE_INITIALE = 20;
|
|
private E[] elements;
|
|
private int taille = 0;
|
|
private int debut = 0;
|
|
private int fin = 0;
|
|
|
|
@SuppressWarnings("unchecked")
|
|
public FileTableau() {
|
|
elements = (E[]) new Object[CAPACITE_INITIALE]; // Création du tableau initial
|
|
}
|
|
|
|
@Override
|
|
public void ajouter(E element) {
|
|
elements[fin] = element;
|
|
fin = (fin + 1) % elements.length;
|
|
taille++;
|
|
}
|
|
|
|
@Override
|
|
public E retirer() {
|
|
if (estVide()) {
|
|
throw new IllegalStateException("La file est vide");
|
|
}
|
|
E element = elements[debut];
|
|
elements[debut] = null; // Supprime la référence pour éviter les fuites de mémoire
|
|
debut = (debut + 1) % elements.length;
|
|
taille--;
|
|
return element;
|
|
}
|
|
|
|
@Override
|
|
public int taille() {
|
|
return taille;
|
|
}
|
|
|
|
@Override
|
|
public boolean estVide() {
|
|
return taille == 0;
|
|
}
|
|
} |