Files
SAE32_2025/src/fr/iutfbleau/sae/mpif/ComparateurEntreeCanonique.java
T
2026-01-05 11:58:34 +01:00

35 lines
1.2 KiB
Java

package fr.iutfbleau.sae.mpif;
import java.util.Comparator;
import java.util.Map;
/**
* Comparateur pour trier les entrées (symbole, longueur) lors de la reconstruction
* des codes canoniques.
* Le tri s'effectue d'abord par longueur croissante, puis par symbole croissant
* en cas d'égalité de longueur.
* </p>
*/
public class ComparateurEntreeCanonique implements Comparator<Map.Entry<Integer, Integer>> {
/**
* Compare deux entrées (symbole, longueur).
*
* @param entree1 première entrée
* @param entree2 deuxième entrée
* @return un entier négatif, zéro, ou positif selon que la première entrée
* est inférieure, égale ou supérieure à la seconde
*/
@Override
public int compare(Map.Entry<Integer, Integer> entree1, Map.Entry<Integer, Integer> entree2) {
// Comparer d'abord par longueur (valeur)
int comparaisonLongueur = entree1.getValue().compareTo(entree2.getValue());
if (comparaisonLongueur != 0) {
return comparaisonLongueur;
}
// Si les longueurs sont égales, comparer par symbole (clé)
return entree1.getKey().compareTo(entree2.getKey());
}
}