IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Téléchargé 1 fois
Vote des utilisateurs
0 
0 
Détails
Licence : Non renseignée
Mise en ligne le 10 mars 2011
Langue : Français
Référencé dans
Navigation

IndexedMap

Implémentation d'une Map gérant en interne une "List" afin de pouvoir ordonner et récuperer les éléments de la Map a travers des "index". cf la javadoc de la classe pour plus de details.
Avatar de Logan Mauzaize
Rédacteur/Modérateur https://www.developpez.com
Le 25/03/2011 à 16:11
Si je comprend bien le principe, c'est d'associer un index arbitraire aux éléments de ta Map ? Je vois pas bien l'utilité Pour moi c'est surtout utile dans le cadre d'une Map triée ... En faite j'aurais fait l'inverse une List triée/optimisée pour les méthodes :
  • java.util.List.contains(Object)
  • java.util.List.remove(Object)
  • java.util.List.indexOf(Object)
  • java.util.List.lastIndexOf(Object)

L'écriture dans la Map n'est pas du tout optimal et fait perdre "l'optimalité" de la lecture. La lecture n'est pas aussi optimale qu'une liste triée (quit à trier le hashcode et gérer des valeurs multiples).

  • IndexedMap.entrySet() : il faut implémenter cette méthode très utile pour parcourir efficacement les clé/valeurs.
  • IndexedValue : la méthode "equals()" est surchargée mais pas "hashCode()"
  • IndexedMap.values() : La collection renvoyée ne reflète pas les changements de la map
  • IndexedMap.BackedList.add(int, Object) : Gérer des cas d'erreur plutôt que de sortir sans un mot.
  • IndexedMap.get(int) : idem
  • IndexedMap.isRobust() : rendre la méthode public ?
  • Pas de méthode equals/hashCode/writeObject/readObject pour ta Map
  • La back-list est une array-list mais les méthodes de gestion du back-array ne sont pas utilisées : la map consomme toujours plus de mémoires même si elle n'en a plus besoin. Solution : Se caler à la taille mémoire de la Map (au clear revenir à une taille similaire de la Map), créer un(des) constructeur(s) qui utilise(nt) les variables d'initialisation de la HashMap/ArrayList (conserver éventuellement ces valeurs) ?, ajouter des méthodes comme sur l'ArrayList, changer la signature de la méthode IndexedMap.entryList() pour qu'elle renvoie une ArrayList


Ca sera bien d'avoir des tests unitaires pour vérifier le comportement ta Map et avoir des cas d'utilisation.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.