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 :

[Vector] Utilisation d'un Vector


Sujet :

Collection et Stream Java

  1. #1
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 307
    Par défaut [Vector] Utilisation d'un Vector
    Salut a tous,

    Une petite question...

    J'ai 2 classes :
    * StatusHolder qui contient mes variables privées et mes methodes Get et Set pour y acceder...
    * Main Class qui contient mon programme.

    Je souhaite utiliser un Vector dans StatusHolder, seulement, je ne sais pas comment ecrire les Get et Set pour un vector...

    Je suis tres debutant en Java (en ce qui concerne cette facon de programmer...).
    Qq'un pourrait til m'eclairer sur le sujet ?
    Est il possible de faire pareil avec une ArrayList ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    public class StatusHolder {
     
        /** Creates a new instance of StatusHolder */
        private Vector v = new Vector();
        private ArrayList myArrayList = new ArrayList();
        //Properties
        private static int cType; //Contract type decided
        private static String ctrtType; // Contract type in String
        private static double f030; // Current principal
        private static double f060; //Next Principal Payment Dec
     
    public static void setcType(int passedType)
        {
            cType = passedType;
        }
     
    public static int getcType()
        {
            return cType;
        }
     
    public static void setf060(double passedDouble)
        {
            f060 = passedDouble;
        }
     
    public static double getf060()
        {
            return f060;
        }
     
    public static void setf030(double passedDouble)
        {
            f030 = passedDouble;
        }
     
    public static void setf030(Double passedDouble)
        {
            f030 = passedDouble.doubleValue();
        }
     
    public static double getf030()
        {
            return f030;
        }
     
     
    }
    Merci d'avance...

    Mario

  2. #2
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Vector est une classe qui ne devrait plus être utilisée à l'heure actuelle, lui préférer ArrayList. Elles implémentent toutes les deux l'interface List, donc ont donc des fonctionnalités similaires. Concernant leur utilisation, il suffit de se référer à la Javadoc.

    Si tu es en Java 5 utilise les Generics, c'est très pratique avec les listes (et la boucle for simplifiée)

  3. #3
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut
    non tu le converti d'abvord en iterator (interface pour les vactor, les listes ...)

  4. #4
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    ArrayList peut faire tout ce que Vector fait, il est très conseillé de l'utiliser à la place de Vector, qui est plus ou moins voué à disparaitre ( me faire confiance sur cette dernière affirmation, je sais qu'elle n'est pas tout à fait exacte, je ne polémiquerais donc pas dessus ).
    Revenons à nos moutons.
    pour ArrayList, tu as la méthode get(int i) qui te retourne le ième élément contenu dedans ( i commence à 0 ).
    add(Object o) ajoute un objet o en dernière position.
    add(int i,Object o) insère un objet o en ième position.
    set(int i,Object o) remplace le ième objet par o.
    remove(int i) supprime le ieme objet.
    remove(Object o) supprime le premier o trouvé.
    etc.
    Consulte la javadoc pour plus de précisions.

  5. #5
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 307
    Par défaut
    Merci pour ces precisions...

    Le probleme est que j'aimerais bien avoir declaré (en private si possible) cet Arraylist dans ma classe StatusHolder et l'utiliser dans ma MainClass...
    Dsl je bloque vraiment sur ce systeme...

    Je vais de ce pas parcourir la Javadoc...

  6. #6
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 307
    Par défaut
    Personne n'a une petite idée qui pourrait me mettre sur la voie.
    Ca reviendrait se demander ce qui doit se trouver dans '???'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public class StatusHolder {
     
        private ArrayList myArrayList = new ArrayList(10);
     
     
    public static void setmyArrayList('???')
        {
            '???'
        }
     
    public static int getmyArrayList()
        {
            '???'
        }
    }
    Je ne sais pas si j'arrive a me faire comprendre et de plus, je n'arrive pas a vous comprendre lol

  7. #7
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Ba si tu veux faire un getter et un setter sur ton ArrayList, je vois pas ce qui te pose problème ,c'est comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public class StatusHolder
    {
    	private ArrayList myArrayList = new ArrayList(10);
     
    	public void setMyArrayList(ArrayList myArrayList)
    	{
    		this.myArrayList = myArrayList;
    	}
     
    	public ArrayList getMyArrayList()
    	{
    		return myArrayList;
    	}
    }
    Tu remarqueras la majuscule après les set et get.
    Je te conseille aussi très vivement d'utiliser les Generics

    Sinon, tu es sûr que tu as besoin de variables statiques ?

  8. #8
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 307
    Par défaut
    Si je n'utilise pas de variables statiques, les methodes ne sont pas accessibles dans ma class MainClass...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public class MainClass {
     
        public MainClass() {
        }
     
        public static void main(String[] args) {
     
            ArrayList myArrayList = new ArrayList();
            myArrayList.add("Hello");
     
            StatusHolder.setcType(1);
     
            System.out.println(StatusHolder.getcType());
            System.out.println(myArrayList.get(0));  
     
            StatusHolder.setMyArrayList(myArrayList);
     
            System.out.println(StatusHolder.getMyArrayList());
     
     
        }
     
    }

  9. #9
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Euh ... tu as compris ce que c'était un objet ? Il faut instancier la classe pour en avoir ....
    Les classes Java, ce ne sont pas des .c

  10. #10
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public class MainClass {
        
        public MainClass() {
        }
        
        public static void main(String[] args) {
            
            ArrayList myArrayList = new ArrayList();
            myArrayList.add("Hello");
            
            StatusHolder monstatus = new StatusHolder();
    
            monstatus.setcType(1);
            
            System.out.println(monstatus.getcType());
            System.out.println(myArrayList.get(0));  
            
            monstatus.setMyArrayList(myArrayList);
            
            System.out.println(monstatus.getMyArrayList());
                         
        }    
    }
    en procedant comme ceci tu créé un objet de type StatusHolder que tu manipule par son nom. tu peux retirer tout les "static".

    Citation Envoyé par chtig
    Euh ... tu as compris ce que c'était un objet ? Il faut instancier la classe pour en avoir ....
    Les classes Java, ce ne sont pas des .c
    vu que tu avais la réponse, tu aurais pu lui donner plutot que de critiquer et de le laisser en plan .

  11. #11
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Citation Envoyé par eclesia
    vu que tu avais la réponse, tu aurais pu lui donner plutot que de critiquer et de le laisser en plan .
    Ben c'est sûrement pas lui donner un code qui marche qui va le faire avancer ...
    C'est en comprenant les choses qu'on progresse ! (donc pour le coup cours d'objet là)

  12. #12
    Membre averti Avatar de mathieumadrid
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 39
    Par défaut
    Je conseillerais plutôt une LinkedList qui range les éléments avec une liste chaînée. Je pense que c'est plus rapide. Qu'en pensez-vous ?

  13. #13
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Le plus souvent il vaut mieux utiliser les ArrayList, à mon avis les LinkedList ne s'utilisent que dans des cas très particuliers.
    cf. Listes java

    A débattre...

  14. #14
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 307
    Par défaut
    Merci a tous pour vos precisions...

    Je pense maintenant avoir compris a peu pres la prog. objet et son fonctionnement... On va dire les bases...

    Il fallait plutot passer par la avant d'essayer de resoudre mon probleme. Ca c'est sur...

    J'essaie maintenant de faire les changements dans mon programme...

    MERCI EN TOUT CAS

  15. #15
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    De rien !
    Désolé si mon post était un peu "aggressif", là n'était pas mon intention, mais effectivement plutôt d'attirer ton attention sur la compréhension de la POO.

    N'oublie pas le petit

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/05/2009, 10h07
  2. Utilisation correcte des vectors et iterators
    Par Ange_blond dans le forum SL & STL
    Réponses: 7
    Dernier message: 29/01/2009, 13h46
  3. tableau / vector : utilisation
    Par viking1404 dans le forum Débuter
    Réponses: 6
    Dernier message: 21/01/2009, 22h22
  4. plantage lors de l'utilisation d'un vector
    Par isoman dans le forum C++
    Réponses: 7
    Dernier message: 20/05/2008, 10h13
  5. 3 précisions sur l'utilisation des "std::vector"
    Par Invité dans le forum SL & STL
    Réponses: 9
    Dernier message: 10/01/2006, 00h42

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