public Map<String,String> codage(ArrayList<Couple> tableauProb){
		//init tableau
		ArrayList<Couple> tableauP = new  ArrayList<Couple>();
		tableauP = copyList(tableauProb);
		Map<String,String> tableauCode = new HashMap();
		for (Couple c : tableauP){
			tableauCode.put(c.caractere, "");
		}
		
		//tri tableau de probabilité
		Collections.sort(tableauP, new CustomComparator());
		int r = (1 - tableauP.size()) % (this.destAlphLength - 1);
		if ( r < 0) r += (this.destAlphLength - 1);
		System.out.println(r);
		
		while (tableauP.size() >= this.destAlphLength ){
			//for (int i = 0; i < this.destAlphLength-1; i++){
				/*for (int j = 0; j < tableauP.get(0).caractere.length(); j++){
					//System.out.println(tableauP.get(0).caractere.charAt(j));
					String val = tableauCode.get(tableauP.get(0).caractere.charAt(j) + "");
					tableauCode.put(tableauP.get(0).caractere.charAt(j) + "",0 + val);
					//System.out.println(tableauCode.get(tableauP.get(0).caractere.charAt(j) + ""));
					//debug lines
				}
				for (int j = 0; j < tableauP.get(1).caractere.length(); j++){
					//System.out.println(tableauP.get(1).caractere.charAt(j));
					String val = tableauCode.get(tableauP.get(1).caractere.charAt(j) + "");
					tableauCode.put(tableauP.get(1).caractere.charAt(j) + "",1 + val);
					//System.out.println(tableauCode.get(tableauP.get(1).caractere.charAt(j) + ""));
					//debug lines
				}*/
			
				for (int a = 0; a < this.destAlphLength - r; a++){
					for (int j = 0; j < tableauP.get(a).caractere.length(); j++){
						System.out.print(tableauP.get(a).caractere.charAt(j));
						String val = tableauCode.get(tableauP.get(a).caractere.charAt(j) + "");
						tableauCode.put(tableauP.get(a).caractere.charAt(j) + "",a + val);
					}
					System.out.println("");
				}
			
				for (int a = 1; a < this.destAlphLength - r; a++){
					tableauP.get(1).nombre_apparitions += tableauP.get(0).nombre_apparitions;
					tableauP.get(1).caractere += tableauP.get(0).caractere;
					System.out.print(tableauP.get(1).caractere + " ; ");
					tableauP.remove(0);
					System.out.println(tableauP.get(0).caractere);
				}
				
				r = 0;
				/*tableauP.get(1).nombre_apparitions += tableauP.get(0).nombre_apparitions;
				tableauP.get(1).caractere += tableauP.get(0).caractere;
				tableauP.remove(0);*/
			//}
			Collections.sort(tableauP, new CustomComparator());			
		}
		return tableauCode;
	}