Files
DEV/DEV3.2/DEV32/FileTableau2.java

54 lines
1.3 KiB
Java
Raw Normal View History

2025-03-31 10:06:09 +02:00
/*Felix-vimalaratnam
Patrick*/
public class FileTableau2<E> implements File2<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 FileTableau2() {
elements = (E[]) new Object[CAPACITE_INITIALE]; // Création du tableau initial
}
@Override
public void ajouter(E element) {
elements[fin] = element;
fin = (fin + 1);
taille++;
}
@Override
public void removeif() {
E element = elements[debut];
if (element.toString().charAt(0) == '-') {
elements[debut] = null; // Supprime la référence pour éviter les fuites de mémoire
debut = (debut + 1);
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);
taille--;
return element;
}
@Override
public int taille() {
return taille;
}
@Override
public boolean estVide() {
return taille == 0;
}
}