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; } }