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.
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.
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![]()
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 :Envoyé par moritan
ça on aurait jamais compris :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Vector vector = 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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part Collection col = new Vector();
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 :
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(ArrayList<?> arraylist);
Code : Sélectionner tout - Visualiser dans une fenêtre à part public void maMethode(List<?> list);voir même :
Code : Sélectionner tout - Visualiser dans une fenêtre à part public void maMethode(Collection<?> c);
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part public void maMethode(Iterable<?> i);
- 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++
Resalut,
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 saitEnvoyé par adiGuba
). 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...
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++
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.Envoyé par adiGuba
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é".
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 suiteEnvoyé par adiGuba
![]()
Oui effectivement l'utilisation d'ArrayList est aussi simple que Vector.Envoyé par adiGuba
Partager