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

Langage Java Discussion :

List VS Map (injection de dépendance)


Sujet :

Langage Java

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 463
    Points : 897
    Points
    897
    Billets dans le blog
    5
    Par défaut List VS Map (injection de dépendance)
    Bonjour,

    J'ai une question où j'aimerais avoir l'avis de la communauté.

    Je développe un logiciel qui fait de la phonie. Les phonies disponibles sont énumérées par une énumération.
    Chaque phonie a une Interface Radio.

    Je développe la partie qui permet de traiter la multi-phonie (pour l’instant, 2 phonie).

    J'ai diverses classes de traitement.

    J'ai besoin, selon les cas, d'avoir accès à l'interface radio.

    La question est:
    Dois-je passer les interfaces radios sous forme de Map<Enumération Phonie,Interface Radio> ou sous forme de List<Interface Radio>.

    Au début, j'ai passé sous forme de Map, mais mon collègue préfère la List, car pour deux phonies.... Une map lui semble inadapté.

    Je n'ai pas fait attention à la question, sauf que je vais rentrer dans une nouvelle phase de développement, et j'ai peur que le nombre de traitement, donc de classe, augmente, ainsi que le nombre de boucles (généralement dans des streams).

    Merci de vos avis.

    Cordialement.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 554
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 615
    Points
    21 615
    Par défaut
    Hello,

    c'est quoi le rapport avec l'injection de dépendance ?

    En tout cas, si tu as besoin de connaître quelle est l'Interface Radio pour une Phonie donnée, il va bien falloir le faire d'une manière ou d'une autre, et ce n'est pas une List qui s'en chargera.

    Maintenant tu peux tout à fait envisager d'avoir la Map d'une part pour les données globales, et une List construite à partir de cette Map, pour quand tu veux itérer sur toutes les Interface Radio sans te soucier des Phonie.

    Cette remarque étant faite, on parle là d'économies de bouts de ficelle. Gagner 1 milliseconde entière après quelques siècles d'exploitation, ce n'est pas quelque chose sur lequel vous devriez dévouer des efforts. Ça t'a probablement pris plus d'une milliseconde, le processus de te poser la question, parler à ton collègue, et venir poster ici.

    Là où ton collègue marque un point, c'est pour le cas où on passe son temps à préférer indexer ses données avec des Map pour retrouver les valeurs rapidement car bien indexées, pour se rendre compte ensuite qu'on a genre 14 valeurs stockées à tout casser, et que rien que calculer le hashcode, sans parler du reste, est bien plus long que de juste regarder toutes les 14 valeurs et vérifier si c'est pas la bonne.

    La Map n'est donc pas un moyen de rendre l'algorithme efficace, avec deux données. Elle peut être un moyen de rendre le programmeur efficace, s'il a pas besoin de faire des pieds et des mains pour trouver la bonne Interface Radio à partir de la bonne Phonie. Quant au temps CPU, il sera de toute façon passé complètement ailleurs, quoi que vous fassiez.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 463
    Points : 897
    Points
    897
    Billets dans le blog
    5
    Par défaut
    Merci pour ta réponse.

    De fait, selon des critère de performance et/ou qualité de code, vaut-il mieux la liste (comme le pense mon collègue) ou la map (comme je le pense).

    Il est vrai que j'ai aussi oublié de dire que l'interface radio donne sa phonie.

    Cordialement.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 554
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 615
    Points
    21 615
    Par défaut
    Pour la qualité de code, 'faudrait plus de détails. Peut-être qu'une Map permet de coder plus clairement, peut-être que non.

    Pour les critères de performance, ils ne sont pas impactés. Sauf si vous ne faites rien d'autre que d'itérer sur cette Map/List. Notamment ne lisez jamais aucun fichier et ne faites pas la moindre utilisation du réseau, en gros, absolument aucune I/O. (Auquel cas, vous pourriez tout aussi bien ne rien faire du tout, le résultat sera le même.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 463
    Points : 897
    Points
    897
    Billets dans le blog
    5
    Par défaut
    Merci beaucoup. Je pense que vous permettez d'éclairer ma lanterne.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JDK 7: Proposition 9 : Notation de tableau pour List et Map -> Intégrée
    Par vbrabant dans le forum Collection et Stream
    Réponses: 58
    Dernier message: 03/09/2009, 15h35
  2. [EJB3] [JBoss] Injection de dépendance circulaire ?
    Par Claythest dans le forum Java EE
    Réponses: 6
    Dernier message: 04/08/2009, 08h11
  3. [EJB3] Injection de dépendance et Stateful
    Par newbeewan dans le forum Java EE
    Réponses: 1
    Dernier message: 15/05/2007, 07h33
  4. [Integration] [EasyMock] Injection de dépendance à l'éxécution
    Par frangin2003 dans le forum Spring
    Réponses: 2
    Dernier message: 06/03/2007, 11h06
  5. Spring + TagSupport et injection de dépendance
    Par worldchampion57 dans le forum Spring Web
    Réponses: 2
    Dernier message: 26/02/2007, 09h01

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