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 :

Déclaration des collections


Sujet :

Collection et Stream Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Points : 30
    Points
    30
    Par défaut Déclaration des collections
    Bonjour,

    J'ai déclaré toutes mes collections privées de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import java.util.Collection;
     
    private Collection lesAssocies;
    Jusque là je n'avais pas eut à travailler avec, et maintenant que je suis dessus ben... j'ai des doutes. Est-ce qu'on peut déclarer une collection comme ça ou est-ce qu'il faut travailler avec un Arraylist, un HashTable... ?

    Non, parce que là j'essaie de travailler dessus et ça ne marche pas trop...
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while (rs.next())
    {
        unParticulier = new Particulier(Integer.parseInt(rs.getString("idClient")), rs.getString("nom").trim(), rs.getString("prenom").trim());
        // On ajoute l'objet unParticulier à la collection
        lesAssocies.add(unParticulier);
    }

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Bonjour,

    Collection est une interface, du coup il est normal que tu ne puisses pas la faire marcher dans la mesure où il n'y a pas d'implémentation derrière.
    Il faut effectivement utiliser les implémentations du style ArrayList, HashMap, HashSet ...
    Par contre, chacune d'entre elles ont des comportements particuliers et adapter à des situations. Plus ou moins rapide en écriture, recherche, suppression ...
    Il y a des articles dans la FAQ java qui expliquent les nuances entre elles (pour les plus connues/utilisées du moins)

  3. #3
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Bonjour, effectivement Collection est une interface, cependant ton code pourrait marcher, ce qui compte, c'est la manière dont tu initialise ta variable "lesAssocies".

    En effet tu peux très bien déclarer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private Collection lesAssocies;
     
    ...
     
     
    lesAssocies = new ArrayList(); //Exemple de collection
    Voila c'est juste une nuance de la réponse de Zorm pour dire que tu n'aura pas forcément besoin de refaire tout ton code

    Les questions à te poser pour le choix de ton implémentation de Collection sont:

    - les éléments sont-ils uniques?
    - sont-ils ordonnés?

    et pour avoir de meilleures performances:
    - Est-ce une liste de type FIFO?
    - y-a-t-il beaucoup d'ajouts ou de suppression? En milieu de liste?



    Et enfin, si tu ne met qu'un seul type d'objet dans ta collection, le nec plus ultra est de déclarer ça aussi dans ton code (valable depuis java 1.5 uniquement):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private Collection<Particulier> lesAssocies;

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    Merci pour vos réponses.
    Je suis passé à du ArrayList, ça fonctionne niquel.

    Jidefix, merci pour les infos. J'essaierai de me pencher sur les différents types de collections quand j'aurais le temps.


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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/10/2005, 14h46
  2. [MASM32] Déclaration des variables
    Par mrousse dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 30/09/2005, 14h30
  3. Réponses: 1
    Dernier message: 10/06/2005, 11h37
  4. [DB2] Ordre de déclaration des variables
    Par Fatah93 dans le forum DB2
    Réponses: 1
    Dernier message: 04/05/2005, 17h18
  5. Réponses: 5
    Dernier message: 10/11/2004, 19h44

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