public ArrayList<Integer> decodage(ArrayList<Integer> codeADecoder)
    {
        ArrayList<Integer> codeSort = new ArrayList<Integer>();        
        ArrayList<Integer> chaineDecodee = new ArrayList<Integer>();
        //Trie du code
        codeSort = new ArrayList<>(codeADecoder);
        Collections.sort(codeSort);
        /*System.out.println("Code trié : " + codeSort);
        
        System.out.println("Position :  0  1  2  3  4 ");
        System.out.println("Code     : " + code);
        System.out.println("CodeSort : " + codeSort);*/
        int posi = positionChaine, nbOccu = 1, c = 0;
        
        for(int i=0 ; i<tailleMot ; i++)
        {
            //On regarde la lettre à la position posi dans codeSort
            c = codeSort.get(posi);

            //On ajoute cette lettre au début de la chaine décodé
            chaineDecodee.add(c);

            //On regarde l'occurence de cette lettre dans codeSort jusqu'à posSort mais pas au delà --> nbOccu
            nbOccu = Collections.frequency(codeSort.subList(0, posi+1), c);//System.out.println("Occu de " + c +" " + nbOccu);

            //On récupère la position dans code de cette lettre à la nbOccu ieme fois ( nbOccu = 2 --> donc la 2nde occurence)
            int debut = 0;
            
            for(int j=0 ; j < nbOccu ; j++)
            {
                posi = codeADecoder.subList(debut, tailleMot).indexOf(c) + debut;
                debut = posi + 1;
            }
        }
        
        return chaineDecodee;
    }