J'ai besoin d'imprimer les nombres qui sont les éléments les plus fréquents dans un tableau. Disons que j'ai un int
comme ça :
int[] array = {1, 2, 3, 3, 3, 5}
Je devrai ensuite imprimer 3, car c'est l'élément le plus fréquent. Mais j'ai aussi besoin d'imprimer les éléments qui apparaissent comme fréquents. Disons que j'ai ce tableau maintenant :
int[] array = {1, 2, 3, 3, 3, 5, 5, 5, 6, 7, 7, 7}
Je dois ensuite imprimer (dans l'ordre) 3, 5 et 7, car ces trois éléments sont les plus fréquents ensemble. La sortie doit donc ressembler à ceci :
3
5
7
Voici le code dont je dispose pour l'instant (il fonctionne pour l'impression d'un seul des numéros les plus fréquents)
Arrays.sort(diceSumArray);
int maxCount = 1;
int index = 1;
int r = diceSumArray[0];
for (int i = 1; i < diceSumArray.length; i++) {
if (diceSumArray[i] == diceSumArray[i-1]) {
index++;
} else {
if (index > maxCount) {
maxCount = index;
r = diceSumArray[i-1];
}
index = 1;
}
}
// not sure where to put the print or if the code below is necessary
System.out.println(r);
if (index > maxCount) {
maxCount = index;
r = diceSumArray[diceSumArray.length -1];
}