Vector,arraylist

Ness -  
sandul Messages postés 4013 Statut Membre -
Bonjour,
Je viens de voir la notion de vector ou arraylist en cours ms je ne comprend pas très bien à quoi ça sert,si quelqu'un pouvait m'eclairer ce serait cool,merci d'avance! :D

1 réponse

sandul Messages postés 4013 Statut Membre 723
 
Salut,

Une List est utile pour gérer une collection d'objets sans taille fixe. Elle a, bien sûr, une taille initiale (même si tu ne la précises pas dans le constructeur) mais celle-ci va être automatiquement modifiée en fonction des opérations sur la liste.

Par contraste, un tableau d'objets a une taille fixe...

Comparer:

// tableau de String; capacité = 10 éléments
String[] tableau = new String[10];

// liste; capacité variable, même si on déclare une capacité initiale de 100 éléments
// pour la deuxième liste
List<String> liste1 = new ArrayList<String> ();
List<String> liste2 = new ArrayList<String> (100);

Disons que tu ne connais pas le nombre d'éléments à mettre dans ton tableau (imagine une lecture de données à partir d'un fichier, par exemple) ==> avec un tableau c'est nécessaire de le sur-dimenssioner pour qu'il puisse accueillir tous les éléments (==> perte inutile de mémoire); même sur-dimensionné, il est parfois difficile de travailler avec (calculer l'indice lorsque l'on veut insérer un élément):

tableau[7] = "élémént en 7ème position";

alors que pour une List c'est tout simple: on rajoute l'élément sans se préoccuper de la position:
liste1.add("encore un élément");

Différence entre ArrayList et Vector: tous les 2 implémentent l'interface List. ArrayList est non synchronisé pour le multi-threading donc un chouïa plus rapide que les Vector. Si ton programme ne gère pas explicitement de multiples threads, utilise donc systématiquement les ArrayList. Il y a des milliers de tutos sur le net pour exemplifier ces différences, voici le 1er qui m'est tombé sous le coude: http://skeletoncoder.blogspot.com/2006/09/java-tutorials-arraylist-or-vector.html

Bon courage.
0