34 lines
1.2 KiB
Java
34 lines
1.2 KiB
Java
import java.util.*;
|
|
|
|
public class Frequence {
|
|
|
|
public static <T> T elementPlusFrequent(T[] tab) {
|
|
java.util.Map<T, Integer> compteur = new java.util.HashMap<>();
|
|
|
|
for(T element : tab) {
|
|
compteur.put(element, compteur.getOrDefault(element, 0) + 1); // Ici on compte les occurrences de chaque élément
|
|
}
|
|
|
|
// Maintenant on doit trouver l'element le plus frequent (en respectant l'ordre du tableau)
|
|
T resultat = null;
|
|
int maxFrequence = 0;
|
|
for(T element : tab) {
|
|
int frequence = compteur.get(element);
|
|
if(frequence > maxFrequence) {
|
|
maxFrequence = frequence;
|
|
resultat = element;
|
|
}
|
|
}
|
|
return resultat;
|
|
}
|
|
public static void main(String[] args) {
|
|
// On test d'abord avec un type String
|
|
String[] mots = {"un", "deux", "trois", "un", "deux", "un"};
|
|
System.out.println("Le mot le plus frequent est : " + elementPlusFrequent(mots));
|
|
|
|
// On test ensuite avec un type Integer
|
|
Integer[] nombres = {1, 2, 2, 3, 1, 2};
|
|
System.out.println("le nb plus frequent : " + elementPlusFrequent(nombres));
|
|
|
|
}
|
|
} |