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.
![](https://1.bp.blogspot.com/-5Ha8y3GbUo4/Xn9nWc2bSJI/AAAAAAAAIhU/VNGi-Lmy37QIaEqQOmNFMeQrM_f0DjNDgCNcBGAsYHQ/s1600/vector.png)
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++