Dans ce didacticiel, nous allons découvrir la classe Vector et comment l'utiliser. Nous allons également apprendre en quoi elle est différente de la classe ArrayList et pourquoi nous devrions utiliser des listes de tableaux à la place.
La Vector
classe est une implémentation de l' List
interface qui nous permet de créer des tableaux redimensionnables similaires à la classe ArrayList.
Vecteur Java et ArrayList
En Java, à la fois ArrayList
et Vector
implémente l' List
interface et fournit les mêmes fonctionnalités. Cependant, il existe des différences entre eux.
La Vector
classe synchronise chaque opération individuelle. Cela signifie que chaque fois que nous voulons effectuer une opération sur des vecteurs, la Vector
classe applique automatiquement un verrou à cette opération.
C'est parce que lorsqu'un thread accède à un vecteur et qu'un autre thread tente en même temps d'y accéder, une exception appelée ConcurrentModificationException
est générée. Par conséquent, cette utilisation continue du verrouillage pour chaque opération rend les vecteurs moins efficaces.
Cependant, dans les listes de tableaux, les méthodes ne sont pas synchronisées. Au lieu de cela, il utilise la Collections.synchronizedList()
méthode qui synchronise la liste dans son ensemble.
Remarque: il est recommandé d'utiliser ArrayList
à la place de Vector
car les vecteurs ne sont pas threadsafe et sont moins efficaces.
Créer un vecteur
Voici comment créer des vecteurs en Java.
Vector vector = new Vector();
Ici, Type indique le type d'une liste liée. Par exemple,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
Méthodes de vecteur
La Vector
classe fournit également les implémentations de tableau redimensionnable de l' List
interface (similaires à la ArrayList
classe). Certaines des Vector
méthodes sont:
Ajouter des éléments au vecteur
add(element)
- ajoute un élément aux vecteursadd(index, element)
- ajoute un élément à la position spécifiéeaddAll(vector)
- ajoute tous les éléments d'un vecteur à un autre vecteur
Par exemple,
import java.util.Vector; class Main ( public static void main(String() args) ( Vector mammals= new Vector(); // Using the add() method mammals.add("Dog"); mammals.add("Horse"); // Using index number mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); // Using addAll() Vector animals = new Vector(); animals.add("Crocodile"); animals.addAll(mammals); System.out.println("New Vector: " + animals); ) )
Production
Vecteur: (Chien, Cheval, Chat) Nouveau vecteur: (Crocodile, Chien, Cheval, Chat)
Accéder aux éléments vectoriels
get(index)
- renvoie un élément spécifié par l'indexiterator()
- renvoie un objet itérateur pour accéder séquentiellement aux éléments vectoriels
Par exemple,
import java.util.Iterator; import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); // Using get() String element = animals.get(2); System.out.println("Element at index 2: " + element); // Using iterator() Iterator iterate = animals.iterator(); System.out.print("Vector: "); while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) )
Production
Élément à l'index 2: Vecteur de chat: chien, cheval, chat,
Supprimer des éléments vectoriels
remove(index)
- supprime un élément de la position spécifiéeremoveAll()
- supprime tous les élémentsclear()
- supprime tous les éléments. C'est plus efficace queremoveAll()
Par exemple,
import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("Initial Vector: " + animals); // Using remove() String element = animals.remove(1); System.out.println("Removed Element: " + element); System.out.println("New Vector: " + animals); // Using clear() animals.clear(); System.out.println("Vector after clear(): " + animals); ) )
Production
Vecteur initial: (Chien, Cheval, Chat) Élément supprimé: Cheval Nouveau vecteur: (Chien, Chat) Vecteur après effacement (): ()
Autres méthodes vectorielles
Méthodes | Descriptions |
---|---|
set() | change un élément du vecteur |
size() | renvoie la taille du vecteur |
toArray() | convertit le vecteur en un tableau |
toString() | convertit le vecteur en chaîne |
contains() | recherche le vecteur pour l'élément spécifié et renvoie un résultat booléen |