IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Codes sources à télécharger Java Discussion :

IndexedMap


Sujet :

Codes sources à télécharger Java

  1. #1
    Membre émérite
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Par défaut IndexedMap
    Bonjour,

    Je vous propose un nouvel élément à utiliser : 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.

    Qu'en pensez-vous ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    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.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. IndexedMap.zip
    Par khayyam90 dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 04/01/2011, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo