TreeMap, HashMap, Hashtable, ... ? [Résolu]

Messages postés
33
Date d'inscription
lundi 14 mars 2005
Dernière intervention
21 novembre 2006
- - Dernière réponse : keopsk
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Dernière intervention
9 mars 2007
- 10 avril 2006 à 19:48
Bonjour a tous !

Je cherche une structure qui pourrait me permettre de stocker plusieurs valeurs pour une seul "clef".
Celle-ce devra me permettre des tris sur les différentes valeurs de la clef.

Là, où ça se complique, c'est mes valeurs sont en fait un ensemble de valeurs (!?!)...

Pour simplifier, je voudrais stocker, pour un nom de fichier donné :
- un type
- une date de modification
- un groupe d'appartenance
- un répertoire où le trouvé

Pour faire simple, toutes ces infos sont des String !! Malheureusement, mes nom de fichier ne sont pas unique !!

Donc, je voudrait que ma structure stocke pour chaque nom de fichier, toutes les infos associées, et que je puisse les trier suivant le type, la date de modif, la groupe ou le répertoire.

Si vous avez des idées sur la structure à utiliser, ou des conseils pour la créer, je suis preneur !!

Merci.

Et que Dieu vous garde, parce que moi j'ai pas le temps !!!
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
33
Date d'inscription
lundi 14 mars 2005
Dernière intervention
21 novembre 2006
3
Merci
Merci pour vos suggestions !!

J'ai essayé vos soluces mais en ne créant qu'un Comparator avec une fonction compare qui prenait un parametre de plus pour indiquer quel critère était à prendre ne compte !!

Cela fonctionne à merveille mais demande un certain temps, trop pour moi !
En effet, je récupère mes infos dans une base de données et déjà la requète prends du temps
alors je ne voudrait pas perdre de temps en traitements

Mais j'ai trouvé une classe forte sympa : LinkedHashMap !

Elle me permet de combiné les avantages de la HashMap et de trier sans avoir à repasser par un autre tableau !!!

Merci quand même !

Et que Dieu vous garde, parce que moi j'ai pas le temps !!!

Merci noname85 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de noname85
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Dernière intervention
23 juin 2006
0
Merci
Ce que je te conseillerais de faire, ce serais de créer un classe qui stockerais toutes les données relative à un fichier.

Puis ensuite tu te définies des classe qui implements Comparator pour pouvoir faire des tris simples sur des infos de ton objet. Dans ces classes tu devrais implémenter les fonctions compare et equals.

Dans ces fonctions tu définieras comment comparer les objet.

Enfin, dans ton code, tu utilises Collection.sort pour trier.

Petit exemple

public class MyComparator implements java.util.Comparator{
...
public int compare (Object o1, Object o2){
if ( !(o1 instanceof MyObject) || !(o2 instanceof MyObject)){
return 0;
}
MyObject m1 = (MyObject) o1;
MyObject m2 = (MyObject) o2;
return m1.getNom().compareTo(m2.getNom());
}
...
}

ensuite dans ton code tu te crée une liste d'objet et tu fais:
Collection.sort(MyObjectList, new MyComparator());
La liste passé en paramètre est maintenant trier sur le nom.

"A game is a series of interesting choices." Sid Meier
Commenter la réponse de cs_ducheseb
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Dernière intervention
8 mars 2011
0
Merci
je pense que tu peux valider la réponse de ducheseb, c ce qu il y a de plus propre
juste pr info il te faudra un comparator par type de tri, cad dans ton cas tu devra en écrire 4 genre TypeComparator, ModifDateComparaotr ...
++ Toinou
Commenter la réponse de super_toinou
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Dernière intervention
9 mars 2007
0
Merci
Bonjour

J'ai ulilisé
TreeMap myTreeMap = new TreeMap(triNom);
myTreeMap.putAll(myMap);
avec :
static final Comparator triNom = new MyComparator ();

au lieu de
Collection.sort(MyObjectList, new MyComparator());

car l'ulise un Map que je mets ensuite dans un TreeMap trié.

Il me retoure un seul enregistement.
qq aurait une explication svp
Commenter la réponse de keopsk
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Dernière intervention
9 mars 2007
0
Merci
En trançant mon code j'ai réalisé que la méthode compare de MyComparator retourne systhématique 0, càd qu'elle ne dépasse pas le premier test ...


merci
Commenter la réponse de keopsk

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.