exo 3 tp generecite
This commit is contained in:
34
DEV.3.2/TP/TP1-Generecite/Frequence.java
Normal file
34
DEV.3.2/TP/TP1-Generecite/Frequence.java
Normal file
@@ -0,0 +1,34 @@
|
||||
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));
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user