Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Java] Les ArrayList

Un bon tuto?

    21 mars 2006 à 0:29:15

    Bonsoir',

    J'aurais besoin d'un petit tuto sur les ArrayList, ou simplement une petite explication rapide (je précise que j'ai cherché sur Internet, mais n'ai trouvé que des exemples qui m'ont rien expliqués...).

    En gros je vourais savoir:
    Je sais quel type d'élément je vais mettre dans mn ArrayList, et ca sera tout le même type: comment le définir?
    Lorsque l'on vient d'insérer un élément dans un ArrayList, comment connaitre son id pour le récupérer avec "ArrayList.get(int id)"? Doit on obligatoirement passer par "Arraylist.add(int id, object o)" et générer les id soi-même? Est-ce que l'Arraylist "rajoute" des cases automatiquement au tableau ou il faut le préciser soi même explicitement?

    Que de questions qui demandent réponse (dire que tout ce que je viens de dire, ca fera 10 lignes dans le projet final, c'est désepérant :o )

    Merci à tous ceux qui pourront m'aider!

    Bonne nuit @+
    • Partager sur Facebook
    • Partager sur Twitter
      21 mars 2006 à 2:15:14

      http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html
      This class is roughly equivalent to Vector, except that it is unsynchronized.

      Et vu tes questions je te conseille d'utiliser Vector.

      Vector<ton_type> à la déclaration.
      Ton type ne peut pas changer mais en utilisant le polymorphisme tu peux y stocker ce que tu veux.
      Exemple Vector<Object> m'enfin là on est super trop générique. (Pareil pour ArrayList)

      Pour répondre à ta question : tu peux faire un add(element) tout seul qui ajoute à la fin.
      Etant donné la méthode ensureCapacity on peut se douter que dès qu'on ajoute un élément, la taille est augmentée en conséquance si on a pas la place pour le mettre.
      Pour connaitre l'id d'un element tu peux utiliser indexOf mais je pense que ça t'oblige à surcharger equals sur ton type.
      Tu sais de toute façon que quand tu concatenes un élément (en utilisant add) son id est : size()-1 (size() appelé après le add).


      • Partager sur Facebook
      • Partager sur Twitter
        21 mars 2006 à 8:03:20

        Oki merci beaucoup! Pour l'instant j'y comprends pas grand chose, et c'est le prof qui nous a dirigé vers ArrayList car il sait ce qu'on a à faire et nous a dit d'utiliser çà.

        Citation : Kayl

        Tu sais de toute façon que quand tu concatenes un élément (en utilisant add) son id est : size()-1 (size() appelé après le add).

        Ce truc ca marche même si j'ai supprimé des éléments du milieu entre temps? Le but sera de parcourir ensuite ce Vector pour réaliser une action spécifique.

        Est-ce qu'un exemple pourrait ête ceci:
        public Vector<Utilisateur> liste_utilisateurs;

        public constructor() {
        liste_utilisateurs = new Vector; // Il faut mettre "Utilisateur" quelque part sur cette ligne?

        public void methode() {
          liste_utilisateurs.add(new utilisateur(nom));
          liste_utilisateurs.add(new utilisateur(nom2));
        }


        ListIterator iterateur = liste_utilisateurs.listIterator();
        while(iterateur.hasNext()){
            Object element = iterateur.next();
        }


        Merci merci!
        • Partager sur Facebook
        • Partager sur Twitter
          21 mars 2006 à 11:44:03

          Citation : Kayl

          http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html
          This class is roughly equivalent to Vector, except that it is unsynchronized.

          Et vu tes questions je te conseille d'utiliser Vector.

          Vector<ton_type> à la déclaration.



          Et moi je te le déconseille vivement. Le seul avantage de Vector par rapport à ArrayList est qu'il est sérializable (et synchronisé) (peu utile pour toi je pense), et il faut savoir qu'il tent à disparaître puisqu'il est déprécié.
          J'ai toujours pris la mauvaise habitude d'utiliser Vector au lieu d'ArrayList pour une raison débile : c'est plus court à écrire ( :D ), mais mon prof m'a heureusement remis sur le droit chemin.
          • Partager sur Facebook
          • Partager sur Twitter
            21 mars 2006 à 12:40:54

            Hum le vector générique est déprécié ? Merci de me pointer vers qq chose qui le dit.
            Le Vector de base ou tu mets que de la merde je veux bien peut-être mais l'introduction des classes génériques dans la 5.0 rapproche encore plus java du C++ et Vector n'a rien d'un boulet dans ce cas.
            • Partager sur Facebook
            • Partager sur Twitter
              21 mars 2006 à 13:21:23

              Bordel je trouve pas :D
              J'étais pourtant persuadé que c'était le cas.

              Si ce n'est pas le cas je m'en excuse, merci de ne pas tenir compte de mon précédent post donc. Et si je trouve par hasard ce que je cherche (c'est toujours quand on ne cherche pas qu'on trouve) je reviendrai poster ici.
              • Partager sur Facebook
              • Partager sur Twitter
                21 mars 2006 à 13:24:03

                Pas de problème :)

                Je suis pas un expert en java de toute façon mais j'ai besoin de voir pour croire :)
                • Partager sur Facebook
                • Partager sur Twitter
                  21 mars 2006 à 19:20:49

                  :euh: Et le code que j'ai mis au dessus, il est juste?

                  [edit] J'ai trouvé çà sinon, ca convient ou non?

                  import java.util.ArrayList; // et pourquoi pas LinkedList? ^_^

                  ArrayList<Utilisateur> liste_utilisateurs;
                  Utilisateur utilisateur;
                  int id_utilisateur;

                  liste_utilisateurs = new ArrayList<Utilisateur>();

                  utilisateur = new Utilisateur('test');
                  liste_utilisateurs.add(utilisateur);
                  id_utilisateur = liste_utilisateurs.indexOf(utilisateurs);

                  for (Utilisateur u : liste_utilisateurs) {
                  system.out.println(u.id+" : "+u.nom);
                  }
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Java] Les ArrayList

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown