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

Langage Java Discussion :

[habitude] Pourquoi tant de personne utilisent encore Vector ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut [habitude] Pourquoi tant de personne utilisent encore Vector ?
    Tout est dans le titre.

    Je n'arrive pas à comprendre pourquoi je vois encore tant de personne parler des Vector quand à côté plein d'autres personnes se rompent l'échine à prôner l'utilisation d'ArrayList.

  2. #2
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Salut,

    Lorsque j'ai appris Java en première année d'IUT, les profs nous ont appris à utiliser la classe Vector pour gérer les collections... donc toute la promo utilisait des Vectors

  3. #3
    Membre éprouvé
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Par défaut
    Pareil quand j'ai appris Java, Vector était l'objet de base pour les collections.

    Je pense qu'il en est de même pour bcp de monde, difficile de ce débarrasser des habitudes ( Collection col =new Vector(); )

    Et tant que Vector ne sera pas déprecated et donc avec un Warning dans l'IDE il est probable que Vector sera encore souvent utilisé.

  4. #4
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Citation Envoyé par moritan
    Pareil quand j'ai appris Java, Vector était l'objet de base pour les collections.

    Je pense qu'il en est de même pour bcp de monde, difficile de ce débarrasser des habitudes ( Collection col =new Vector(); )

    Et tant que Vector ne sera pas déprecated et donc avec un Warning dans l'IDE il est probable que Vector sera encore souvent utilisé.
    Ah ouais non ! Tu faisais déjà des trucs trop évolués !! Nous on faisait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vector vector = new Vector();
    ça on aurait jamais compris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Collection col = new Vector();
    Il faut dire qu'on avait commencé Java 2 mois après le début de l'année. D'ailleurs je trouve que c'est un atout d'apprendre un langage objet aussi tôt (même si au début c'est vraiment galère).

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    • La méconnaissance de l'API en général, et de l'API de Collection en particulier. Les personnes qui ont appris le langage avant Java 1.2 n'avaent pas d'autres choix.
    • Comme le dit yann2, les profs de Java ne sont pas tous très à jours et continue à utiliser leurs vieux cours...
    • Dans certains cas, on a besoin d'utiliser Vector. En particulier avec les API datant d'avant Java 1.2 ou avec Swing qui n'offre pas d'alternative...



    Mais pour moi le plus important est d'utiliser une abstraction du type exact en utilisant les interfaces de l'API de Collection, et éviter les méthode du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void maMethode(ArrayList<?> arraylist);
    Mais utiliser un type plus générique selon les besoins, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void maMethode(List<?> list);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void maMethode(Collection<?> c);
    voir même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void maMethode(Iterable<?> i);
    Cela permet de laisser de coté l'implémentation exacte et de mieux s'adapter aux besoins du développeur qui utilisera cette méthode :
    • Si on spécifie une ArrayList, il ne pourra utiliser qu'une ArrayList ou une classe fille. Mais cela limite fortement le choix...
    • En utilisant une List, on le laisse libre de choisir l'implémentation qu'il souhaite voir de les encapsuler. De plus on ne perd quasiment aucune possibilité vu que la quasi-totalité des méthodes d'ArrayList sont défini dans l'interface List...
    • En utilisant une Collection on laisse un choix encore plus grand (notamment avec les Set) mais on perd l'accès via index (donc cela dépend des besoins de la méthode).
    • De même avec Iterable (Java 5.0) on n'autorise que l'itération mais sur n'importe quel objet qui possède une méthode iterator()...



    Bref ceci permet de se libérer complètement de l'implémentation...

    a++

  6. #6
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Resalut,

    Citation Envoyé par adiGuba
    Comme le dit yann2, les profs de Java ne sont pas tous très à jours et continue à utiliser leurs vieux cours...
    Oui enfin la deuxième année on a eu un super cours sur les structures de données. Nous avons donc appris à utiliser l'API collection JAVA et maintenant nous savons pourquoi nous utilisons une ArrayList au lieu d'une LinkedList (enfin normalement on le sait ). Je voulais ajouter ça parce les profs d'IUT étaient vraiment impliqués dans leur travail c'était vraiment motivant et il faut bien que je le leur rende.

    Finalement, je pense que commencer par Vector n'est pas si mal...

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    yann2 >> ce n'était pas vraiment une critique mais un fait...

    Bien sûr l'apprentissage d'un langage et des abstractions et différentes notions de POO n'est pas forcément évident, sans compter les différentes contraintes de temps...

    Mais bon je ne vois pas en quoi ce serait plus compliqué d'utiliser ArrayList lors de l'apprentissage

    a++

  8. #8
    Membre éprouvé Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut
    Citation Envoyé par adiGuba
    Mais bon je ne vois pas en quoi ce serait plus compliqué d'utiliser ArrayList lors de l'apprentissage
    Ayant été également formé à l'IUT, je n'ai pas échappé à ce fameux Vector. Pour ma part, je ne pense pas que ce soit une erreur... En fait, Vector se rapproche fort d'un simple tableau[]. Quand on apprend les bases de la programmation et Java, il est important de bien assimiler tous ses concepts.
    Par exemple, passer d'un tableau à Vector est simple : on imagine trés bien la classe Vector. En revanche, passer directement à ArrayList aurait été plus confus que de découvrir plus tard que c'est un "Vector amélioré".

  9. #9
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Citation Envoyé par adiGuba
    yann2 >> ce n'était pas vraiment une critique mais un fait...
    Oui, ne t'inquiète pas, je ne l'avais pas pris comme ça. Des profs qui aprennent plus que les élèves j'en ai vus pas mal par la suite

    Citation Envoyé par adiGuba
    Mais bon je ne vois pas en quoi ce serait plus compliqué d'utiliser ArrayList lors de l'apprentissage
    Oui effectivement l'utilisation d'ArrayList est aussi simple que Vector.

Discussions similaires

  1. [manuels unix]Pourquoi tant de haine ?
    Par xavlours dans le forum La taverne du Club : Humour et divers
    Réponses: 5
    Dernier message: 23/09/2006, 12h48
  2. utilisation classe vector et supression de doublons
    Par vandevere dans le forum SL & STL
    Réponses: 1
    Dernier message: 30/06/2005, 11h17
  3. Problème d'utilisation de vector
    Par loupdeau dans le forum SL & STL
    Réponses: 12
    Dernier message: 28/02/2005, 12h05
  4. TQuery : pourquoi tant de lenteurs
    Par lgirard dans le forum Bases de données
    Réponses: 4
    Dernier message: 20/04/2004, 10h15

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