Faire un tabMax d'un tableau de char

kaldax73 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -  
kaldax73 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, comme dit dans le titre je voudrais savoir s'il était possible de faire une fonction max d'un tableau de char ? En gros y'a une tableau de char {s,s,s,s,t,t,k,k} et la fonction m'affiche que la lettre qui apparaît le plus dans le tableau est 's' j'ai fait un bout de code comme ici :

String  str = "salusss les copains";
char [] str2 = str.toCharArray(); ://donc je transforme le String en tableau de char pour que ce soit plus simple
char elem = Maxtab(str2); :// j'ai déjà fait une fonction max tab qui retourne le maximum du tableau mais moi je voudrais un maxtab qui affiche comme j'ai dit en haut la lettre qui apparaît le plus pour un tableau de char
A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Pour y arriver tu devrais passer par une Map qui compte les occurrences de chaque valeur.

Tu peux regarder ce code par exemple :
https://mkyong.com/java8/java-8-collectors-groupingby-and-mapping-example

Ensuite, il faudra parcourir cette Map pour trouver la valeur qui a le plus grand nombre d'occurrences.
0
kaldax73 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   3
 
Merci de ta réponse!
Il n'y a pas moyen de faire ça sans rien importer ?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Sans jamais rien importer du tout (c'est à dire se limiter à java.lang) ça va rapidement être compliqué de coder tout ce qu'il te faut. Java est fourni avec une large bibliothèque de classes qu'il faut apprendre à utiliser.

Dans ton cas, je ne vois pas comment tu peux faire sans au moins importer java.util.HashMap (ou java.util.TreeMap au choix).
0
kaldax73 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   3 > KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention  
 
Je dis ça parce que dans l'exercice, j'en suis à un point ou je ne connais pas encore les différentes bibliothèques donc pour moi c'est qu'on pouvait le faire sans rien importer
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > kaldax73 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention  
 
Pour un exercice tu peux bien sûr tout refaire, mais c'est vraiment purement scolaire, dans la réalité on ne s’embêterait jamais à faire comme ça...

Tu peux par exemple, utiliser deux tableaux
char[] dejaVus
et
int[] occurences
.
Avec ton tableau d'exemple
[s,a,l,u,s,s,s, ,l,e,s, ,c,o,p,a,i,n,s]
ton traitement devrait produire :
dejaVus    = [s,a,l,u, ,e,c,o,p,i,n]
occurences = [6,2,2,1,2,1,1,1,1,1,1]

La recherche du maximum (6) correspondra donc à la lettre
s
recherchée.
0
kaldax73 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   3 > KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention  
 
Ah oui je vois...
Exactement! Mais ce que je n'arrive pas à faire c'est compter le nombre de char , je ne sais pas comment faire ...
0