Différence entre Vector et ArrayList en Java
La classe Vector est venu avec la première version du JDK. La classe ArrayList a été introduit dans java version1.2, dans le framework Collection. Selon l’API java, Java2 v1.2, vector a été mis à niveau pour implémenter List et vector est également devenu une partie du framework Collection de java.

| La classe ArrayList n’est pas synchronisé. | La classe Vector est synchronisé. |
| ArrayList augmente 50% de la taille actuelle du tableau si le nombre d’éléments dépasse sa capacité. | Vector augmente 100% signifie qu’il double la taille du tableau si le nombre d’éléments dépasse sa capacité. |
| ArrayList est rapide car il n’est pas synchronisé. | Vector est lent car il est synchronisé, c’est-à-dire que dans un environnement multithreading, il maintient les autres threads dans un état exécutable ou non exécutable jusqu’à ce que le thread actuel libère le verrou de l’objet. |
| ArrayList utilise l’interface Iterator pour parcourir les éléments. | Vector peut utiliser l’interface Iterator ou l’interface Enumeration pour parcourir les éléments. |
Quel est le meilleur à utiliser Vector ou ArrayList?
En général, l’exécution d’une méthode synchronisée entraîne des performances plus coûteuses qu’une méthode non synchronisée. Gardant la différence à l’esprit, l’utilisation de Vector entraînera un impact sur les performances par rapport à ArrayList. Mais, lorsqu’il existe un certain besoin pour un thread-safe, Vector doit être utilisé.
Exemple: ArrayList
Parcourir les éléments en utilisant l’interface Iterator:
import java.util.*;
public class Main {
public static void main(String args[]){
//Créer un arraylist
List<String> list = new ArrayList<String>();
//Ajouter des objets dans l'arraylist
list.add("Java");
list.add("PHP");
list.add("Python");
list.add("C++");
//Parcourir les éléments en utilisant Iterator
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
Sortie:
Java PHP Python C++
Exemple: Vector
Parcourir les éléments en utilisant l’interface Enumeration:
import java.util.*;
public class Main {
public static void main(String args[]){
//Créer un vecteur
Vector<String> vect = new Vector<String>();
//Ajouter des objets dans le vecteur
vect.add("Java");
vect.add("PHP");
vect.add("Python");
vect.add("C++");
//Parcourir les éléments en utilisant Enumeration
Enumeration en = vect.elements();
while(en.hasMoreElements()){
System.out.println(en.nextElement());
}
}
}
Sortie:
Java PHP Python C++

