OVH Cloud OVH Cloud

Conseil codage dictionnaire

3 réponses
Avatar
Eric
Bonjour,

je souhaite coder une classe representant une sorte de dictionnaire.
En gros, je vais avoir une liste de 100 mots environ a traduire en 8
langues.

Par contre, je m'y perds entre les tableaux a double entrée, arrayList,
Collection, LinkedHashMap, etc ...
A priori il y a plein de moyens ...

Pouvez vous m'aiguiller pour que je puisse partir sur la meilleure
solution ?

Merci,
Cordialement
Eric.

3 réponses

Avatar
jeje900ss
Bonjour,


Bonjour


je souhaite coder une classe representant une sorte de dictionnaire.
En gros, je vais avoir une liste de 100 mots environ a traduire en 8
langues.

Par contre, je m'y perds entre les tableaux a double entrée, arrayList,
Collection, LinkedHashMap, etc ...
A priori il y a plein de moyens ...


A priori je choisirai une Hashtable. Avec pour la clé le mot en anglais
par exemple et en valeur le mot traduit.


Pouvez vous m'aiguiller pour que je puisse partir sur la meilleure
solution ?


Tu donne pas beaucoup de détail sur ce que tu veux faire exactement.
Mais si c'est plutôt pour traduire ton application dans plusieurs
langues, j'utiliserai plutot les des fichiers de resource associé au
ResourceBundle.



Merci,


De rien

Jérôme

Avatar
Eric
Bonjour,



Bonjour


je souhaite coder une classe representant une sorte de dictionnaire.
En gros, je vais avoir une liste de 100 mots environ a traduire en 8
langues.

Par contre, je m'y perds entre les tableaux a double entrée,
arrayList, Collection, LinkedHashMap, etc ...
A priori il y a plein de moyens ...



A priori je choisirai une Hashtable. Avec pour la clé le mot en anglais
par exemple et en valeur le mot traduit.


Pouvez vous m'aiguiller pour que je puisse partir sur la meilleure
solution ?



Tu donne pas beaucoup de détail sur ce que tu veux faire exactement.


Bon je vous en dis un peu plus sur l'utilisation. Je vaais essayer de ne
pas vous perdre.
En fait nous ecrivons une applis qui puise des données dans des bases de
données pour les reinjecter dans des annuaires LDAP.
Afin de rendre notre code assez generiques, nous souhaiterions passer
par ce dictionnaire.
Ainsi, si on decide de changer un champ dans une base, on a juste a
changer le dico et on ne retouche pas au code.

Il y aurait un langage universel que toutes mes classes connaissent.
Chaque classe devra pouvoir traduire un terme soit de langage universel
vers son langage, soit l'inverse.

exemple :
dans une BD qui me fournit des infos, j'ai le champ "nom".
dans une BD intermédiaire qui fait le mix entre plusieurs BD me
fournissant des infos, j'ai "nom_usuel"
dans un LDAP j'ai
"sn"

en langage universel, ca pourrait etre : "nom_d_usage"

j'aimerais ainsi pouvoir traduire "nom_d_usage" que toutes mes classes
connaissent en nom, nom_usuel ou sn suivant les cas !

Voila, tout le monde a suivi ?
;o)


Mais si c'est plutôt pour traduire ton application dans plusieurs
langues, j'utiliserai plutot les des fichiers de resource associé au
ResourceBundle.



Merci,



De rien

Jérôme



Avatar
alex
je souhaite coder une classe representant une sorte de dictionnaire.
En gros, je vais avoir une liste de 100 mots environ a traduire en 8
langues.

Par contre, je m'y perds entre les tableaux a double entrée, arrayList,
Collection, LinkedHashMap, etc ...
A priori il y a plein de moyens ...


Collection --> interface de tout le reste + ou -

alors si mais souvenir son bon

Vector = - ou + ArrayList (or RMI et partage de la liste pb de syncro ) tableau qui grandi automatiquement
Linked Liste = implementation sous forme de liste montante et descendante .
Hashmap = table de haschage .

interé Vector --> si la liste change au cour de lexecution
les liste --> si y a beaucoup de modif avec insertion
Hashmap --> ideal si on a de l espace car faut compter 3 fois + voir 4
d'espace PS ( attention a l hashcode() a reimpemente defois)


a mon avi si ta liste doit etre initialise des le debut et ne plus etre
toucher (deja trié ) c'est Vector ou arrayListe .
maintenant les Hashmap seront bien si tu doit insere des mots de temps en
temps au milieu de ta colection .
les listes si tu doit le trié est faire pas mal de modif mais pb sur l'accé
a une cellule .