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

avec Java Discussion :

Créer une liste avec LinkedList


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 98
    Par défaut Créer une liste avec LinkedList
    salut
    pour ne pas mentir j'ai pas cherché sur le forum pour voir si il des sujets comme le miens,parce que moi Les collections d'objets je n'arrive pas à les maitriser donc je veux les comprendre mai avec mon problème
    voila

    je vous donne un simple code
    soit les class suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Etudiant  {
     
    int num;
    double moyenne ;
    //.............
    }
    public class ListEudiant extends LinkedList {/........}
    1-ce que je veux savoir c'est comment ajouter des etudiants

    2 les autres questions à venir car je veux comprendre (un à un )

    remarque je peus bien crier une list
    avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Liste lis =new  LinkedList ();
    puis 
    Etudaint e =new Etudaint(); 
    lis.add(e);
    mais ca c'est un peux facile ce que moi je cherche c'est comprendre ce problème la

    merci d'avance et je vous serai très reconnaissant;

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 39
    Par défaut
    Je suis débutant, mais je pense qu'étant donné que ta classe "ListEtudiant" hérite de LinkedList, tu peux directement instancier des objets de type "ListEtudiant", qui seront des LinkedList "améliorées" par ta sous-classe...
    Donc :

    Etudiant x = new Etudiant() //crée ton étudiant
    ListEtudiant e = new ListEtudiant() //crée ta liste
    e.add(x) // ajoute à la liste

    Je vois pas de moyen plus court...

  3. #3
    Membre très actif
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Par défaut
    TheVirus2013 as tout a fait raison ! De la part d'un dit "débutant", c'est même très bien

    Juste une petite aide pour que le compilateur te dise un peu mieux si tu fait des bêtises ou pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class ListEudiant extends LinkedList {/*........*/}
    A remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class ListEudiant extends LinkedList<Etudiant> {/*........*/}

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 98
    Par défaut
    merci

    mais une chose
    pour moi ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Etudiant x = new Etudiant() //crée ton étudiant
    ListEtudiant e = new ListEtudiant() //crée ta liste
    e.add(x) // ajoute à la liste
    c'est comment ce lui la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Liste lis =new LinkedList ();   (List est rempaé par ListEtudiant);
    Etudaint e =new Etudaint();
    lis.add(e);
    une autre chose avec c'est comme si je viens de crée une liste dans une liste
    e dans la liste qui ListEtudiant non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListEtudiant e = new ListEtudiant()


    mais ce que j'ai voulus faire c'est ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class ListEudiant extends LinkedList<Etudiant> {
     
    public ListeEtudiant(){  
    Etudiant x = new Etudiant() ;
    this.add(x);
     
    }
                   }
    voila s'il vous plait n'hésitez pas à dire tout ce que vous voulez j'ai besoin de vous remarque pour comprendre

  5. #5
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    Pour détailler la notation avec les crochets, genre <Classe>

    Depuis Java 1.5 sont apparus les 'generics', c'est à dire la possibilité de créer une instance de classe spécialisée pour un type particulier.

    L'intérêt ? Regardons d'abord l'écriture sans 'generics':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Etudiant e = new Etudiant();
    LinkedList list = new LinkedList();
     
    // pour ajouter l'élément dans la liste
    list.add(e);
     
    // pour récupérer un élément de la liste:
    Etudiant premierEtudiantDeLaListe = (Etudiant)list.get(0);
    On voit dans la dernière ligne "list.get(...)" que comme la liste est prévue pour contenir des objets génériques, elle retourne un objet de type 'Object'. On est donc obligé de convertir (caster) l'objet en étudiant, d'où la notation '(Etudiant)list.get(0)'

    avec les 'generics', lorsqu'on va instancier la liste, on va lui donner le type d'objets qu'elle va contenir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Etudiant e = new Etudiant();
    LinkedList<Etudiant> list = new LinkedList<Etudiant>();
     
    // pour ajouter l'élément dans la liste
    list.add(e);
     
    // pour récupérer un élément de la liste:
    Etudiant premierEtudiantDeLaListe = list.get(0);
    On voit ici que la liste est paramétrée pour ne contenir que des étudiants. La fonction 'get' est alors capable de retourner directement un objet de type 'Etudiant', et on peut se passer de la conversion.
    De même, la fonction 'add' est alors faite pour ne prendre en paramètre que des objets du bon type (Etudiant). Tu es donc certain que ta liste ne pourra contenir que des objets du bon type.

    A lire: la section 'generics' dans la FAQ et le lien qui y est mentionné.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 39
    Par défaut
    Si ce que tu veux faire c'est ajouter automatiquement les étudiants à une liste de manière simple, le mieux est de ne pas créer de classe dérivée de LinkedList, mais plutôt de mettre un attribut static dans ta classe Etudiant, qui ne serait rien d'autre que ta liste. Ensuite, dans le constructeur de Etudiant, tu rajoute la méthode add automatiquement à chaque création d'une instance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Etudiant{
         .....
         static LinkedList<Etudiant> e= new LindekList<Etudiant>
         .....
     
         public Etudiant(){
         e.add(this)
         }
    }

Discussions similaires

  1. [2.x] Créer une liste avec des images et checkbox dans un formulaire
    Par bloodangel78 dans le forum Symfony
    Réponses: 5
    Dernier message: 22/07/2013, 17h19
  2. [DATA] Créer une liste avec des villes ayant le même tarif
    Par bab22 dans le forum SAS Base
    Réponses: 4
    Dernier message: 26/09/2012, 10h27
  3. créer une liste avec un pas de 0.1
    Par Chefcou dans le forum Général Python
    Réponses: 2
    Dernier message: 06/06/2012, 20h46
  4. Réponses: 8
    Dernier message: 23/01/2008, 09h05
  5. Créer une liste avec des noms de fichiers
    Par Jeffboj dans le forum Access
    Réponses: 5
    Dernier message: 12/05/2006, 05h48

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