[java] Tableau indexé à 3 colonnes

mike220684 Messages postés 12 Statut Membre -  
mike220684 Messages postés 12 Statut Membre -
Bonjour.

Je désire développer en java un tableau avec accès rapide qui contiendrait les données du genre :
"motclé", catégorie (entier), "couleur".

J'avais pensé à :
1. Une HashMap (j'adore ça car accès rapide) avec en key mon "motclé" et en value un tableau de string "catégorie", "couleur" (j'aurai converti la catégorie en int ensuite), mais impossible de caster le get du HashMap en tableau de String : (String[])hash.get("motclé").

2. Un tableau de string comme ça (pour 17 mots clés) : String[17][3] où j'ajoute à chaque fois les valeurs manuellement. Mais j'ai pas pris cette solution car pour trouver la catégorie d'un mot clé, il faut parcourir tout le tableau, et je dois aller vite (très souvent sollicité).

Finalement j'ai opté pour 3. mais ça ne me convient pas (je trouve ça bidouillé, et lon en parsing) :
3. Une HashMap avec en key le motclé et en value un string (à parser) du type : "categorie-couleur". Je fais ensuite un split sur le "-" pour récupérer les deux valeurs.

Qu'en pensez-vous ? Comment faire mon tableau ?

Merci beaucoup.

1 réponse

Sébastien
 
Normalement, tu es censé créer une classe pour ce genre de chose :
La solution la plus simple avec une classe :

public class CategoryCouleur {
     public String couleur;
     public int categorie;
     public CategoryCouleur(int categorie, String couleur) {
         this.categorie = categorie;
         this.couleur = couleur;
     }
}


Et utiliser une HashMap contenant des objets de
cette classe, avec en key le mot-clé et en value
l'objet.

C'est beaucoup de formalisation pour simplement
2 propriétés mais bon, c java :)
0
mike220684 Messages postés 12 Statut Membre 2
 
Ok merci.
Est-ce que tu penses que cette solution coute moins cher en ressources mémoires ? En temps d'exécution ?

Comment le calculer ?

Ca fera partie de mon choix final. Je ne sais pas si le split + conversion de la string en int coute plus cher en temps que ce que me coute ta solution en mémoire. Je suis clair ?

Mickaël.
0