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

Collection et Stream Java Discussion :

Question sur les collections


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Par défaut Question sur les collections
    Bonjour,

    Dans la Faq sur les collections,
    ici
    http://java.developpez.com/faq/java/...info_framework
    on peut lire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // La bonne solution : 
    List<Object> list = new ArrayList<Object>();
    Set<Object> set = new HashSet<Object>();
    Map<Object> map = new TreeMap<Object>();
    // La mauvaise solution : 
    ArrayList<Object> list = new ArrayList<Object>();
    HashSet<Object> set = new HashSet<Object>();
    TreeMap<Object> map = new TreeMap<Object>();
    Je ne comprend pas la différence entre la bonne et mauvaise solution,
    la partie à droite du signe d'affectation étant la même, quel intérêt de choisir List et pas ArrayList, par exemple,
    à gauche du signe.

    Une réponse simple existe-t'elle ?

    Merci,

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 133
    Par défaut
    Toutes les réponses sont simples, il suffit de les comprendre

    En fait la différence entre la bonne et la mauvaise solution réside dans ce que tu vois avant le "=".

    Par exemple la première ligne de la bonne solution est une List<> , et sur la mauvaise il met directement une ArrayList<>.

    Par conséquent l'objet "list" est de type List et non de type ArrayList.

    Alors pourquoi mettre directement l'interface et non pas l'objet en tant qu'ArrayList ? Pour toi sur le coup ça ne te change pas grand chose. Cependant si un jour tu veux changer le code, ou le faire évoluer, toute l'implémentation n'acceptera qu'une ArrayList, alors que si tu mets une List, la quantité de code que tu devrais faire évoluer sera moindre.

    En fait il existe des ArrayList, des LinkedList, qui implémente l'interface List.
    Tout comme des HashSet,TreeSet qui implémente .. Set.

    Un exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void faitQuelqueChose(ArrayList<T> maListe){
    // cette fonction n'accepte que les objets de type Arraylist. 
    }
     
    public void faitQuelqueChose(List<T> maList){
    // cette fonction accepte tout objet implémentant List (ArrayList,LinkedList ..)
    }
    Je ne sais pas si j'ai réussi à me faire comprendre, j'espère que oui

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Par défaut
    Toutes les réponses sont simples, il suffit de les comprendre
    Merci pour ta réponse, elle est simple et tant mieux : je l'ai comprise.
    Cependant, il n'est pas toujours simple de trouver une réponse.
    J'ai vu pas mal de fois ma question, depuis que je me la pose, posée par d'autres sans réponse ou avec des réponses au moins nébuleuses!

    Mais qu'importe, merci.
    pas :

    mais

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

Discussions similaires

  1. Questions sur les collections & Interface
    Par Engineer10 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 17/03/2013, 17h22
  2. Question sur les collections
    Par jawahir dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 29/12/2011, 22h30
  3. Question sur les collections
    Par van der zahir dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2011, 09h10
  4. Quelques questions sur les collections en java ?
    Par bambino13 dans le forum Collection et Stream
    Réponses: 0
    Dernier message: 30/05/2009, 21h48
  5. Question sur les collections
    Par gibea00 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/09/2007, 20h26

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