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.
 


 
 

ArrayList
Vector
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++

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *