public class Bulle{

    public static <E> boolean bulle(File<E> pileRemplis, File<E> pileVide){
        if (pileVide.isEmpty() == false){
            throw new IllegalArgumentException("Erreur : l'argument pileVide n'est pas vide");
        }

        E max, v2;
        boolean haveChangement = false;
        if (pileRemplis.isEmpty() == false){
            max = pileRemplis.dequeue();
            while (pileRemplis.isEmpty() == false){
                v2 = max;
                max = pileRemplis.dequeue();
                if (max < v2){ // changer cette ligne pour rendre les objet comparable
                    pileVide.enqueue(max);
                    max = v2;
                    haveChangement = true;
                }
                else{
                    pileVide.enqueue(v2);
                }
            }
            pileVide.enqueue(max);
        }
        return haveChangement;
    }

    public static <E> File<E> tri(File<E> pile1){
        File<E> pile2 = new File<>();
        File<E> transition = null;
        while (Bulle.bulle(pile1, pile2)){
            transition = pile2;
            pile2 = pile1;
            pile1 = transition; 
        }
        return pile2;
    }
}