Finalisation des interfaces pour les codes + test avec une image

This commit is contained in:
2025-12-27 14:19:04 +01:00
parent 9d925f6782
commit 2dbef96484
19 changed files with 75 additions and 31 deletions
@@ -2,17 +2,18 @@ package fr.iutfbleau.sae.mhuffman;
import java.util.*;
public class CanonicalCode{
private Map<Integer, String> codeLengths = new HashMap<>();
private Map<Integer, String> canonicalCodes = new HashMap<>();
//private Map<Integer, String> codeLengths = new HashMap<>();
//private Map<Integer, String> canonicalCodes = new HashMap<>();
public Map<Integer,String> generateCodes(){
public Map<Integer,String> generateCodes(Map<Integer,String> codesHuffman){
// 1 ere chose à faire : on regarde uniquement la longueur des codes initiaux(Huffman)
// 2eme chose à faire : remettre dans l'ordre des longueurs : si meme taille ==> regarder valeur
// 3eme chose à faire : ecriture des codes canoniques
// on recupere les entrées des codes Huffman pour pouvoir les triés
List<Map.Entry<Integer, String>> liste = new ArrayList<>(codeLengths.entrySet());
List<Map.Entry<Integer, String>> liste = new ArrayList<>(codesHuffman.entrySet());
// ici on comparer par longueur de la valeur ou sinon par la clé
@@ -30,7 +31,7 @@ public class CanonicalCode{
}
});
Map<Integer,String> canonicalCodes = new HashMap<>();
int code = 0; // code canonique à attribuer
int temp = 0; //garde la longueur du code précedent , pour gérer le décalage
@@ -55,18 +56,14 @@ public class CanonicalCode{
}
public String getCode(int value){
return this.canonicalCodes.get(value);
public String getCode(Map<Integer,String> canonicalCodes,int value){
return canonicalCodes.get(value);
}
public int getLength(int value){
return this.codeLengths.get(value).length();
public int getLength(Map<Integer,String> codesH,int value){
return codesH.get(value).length();
}
public Map<Integer,String> getCanonicalCodes(){
return this.canonicalCodes;
}
}