La classe Vector de java

La classe java Vector implémente un tableau d'objets similaire à ArrayList. Les éléments de Vector sont accessibles à travers d'un indice entier. La taille d'un Vector est variable selon le besoin(ajouter ou supprimer des éléments) après la création.

Vector est synchronisée ce qui veut dire qu'il permet plusieurs opérations au même temps toutefois, il ne garantie pas de bonnes performances lors d'une utilisation multi-threading. Il est recommandé d'utiliser ArrayList qui donne de bonnes performances si vous n'aurez pas besoin de synchroniser la liste.

Vector implémente l'interface List comme ArrayList, son inconvénient est qu'il donne de faible performance comme on l'a mentionné à cause de sa synchronisation dans les opération d'ajout, recherche, suppression et modification de ces éléments.

La classe Vector supporte 4 constructeurs:

1)Vector v = new Vector();
Ce constructeur crée un vecteur vide avec une taille initiale de 10. Le vecteur sera redimensionnée s'il dépasse 10 éléments pour que le 11ème soit inséré dans Vector.

2)Vector v = new Vector(int capacitéInitiale);
Cette forme initialise le vecteur avec une taille initiale qui spécifie le nombre d'éléments à allouer.
Vector v = new Vector(5);//Il va créer un Vector de capacité 5.

3)Vector v = new Vector(int capacitéInitiale, int CapacitéIncrémentation)
Crée un Vector avec une capacité initiale et spécifie combien de cases vont être allouer quand Vector redimensionne la capacité si le nombre d'éléments atteint la taille maximale.
Vector v = new Vector(8);
Il va créer un Vector de capacité 8 et une capacité d'incrémentation de 4. Ce que veut dire que l'insertion du 9 ème élément, la taille est 12(8+4) et la 16 ème insertion va être 20(16+4).

4)Vector v = new Vector(Collection c);
Initialise le vecteur avec une collection d'objet (ArrayList, TreeSet, HashMap,etc).

Les méthodes importantes de Vector

Comme dans ArrayList et d'autres collections d'objets, Vector implémente l'interface List et l'interface Collections dont il hérite de nombreuses méthodes d'ajout, suppression, recherche, modification.

Ajouter un élément

L'ajout se fait avec deux méthodes: add() et addElement(). addElement() après l'insertion incrémente la taille de la liste.

import java.util.Vector;

public class addElement{

public static void main(String[] args) {
Vector v = new Vector();

v.add(1);
v.add(2);
v.add(3);
System.out.println(v);
v.addElement(4);
System.out.println(v);
}
}
Sortie:

[1, 2, 3]
[1, 2, 3, 4]

Supprimer un élément

On peut supprimer soit avec l'indice avec la méthode remove(int index), soit avec propre méthode de Vector removeElementAt(int index). La recherche et la suppression d'un objet est possible avec la méthode remove(Object o):

import java.util.Vector;

public class remove{

public static void main(String[] args) {
Vector v = new Vector();

v.add(1);
v.add(2);
v.add(3);
v.add(4);
System.out.println(v);
//suppression avec indice
v.remove(2);
System.out.println("suppressioin de l'élément à l'indice 2 : "+v);
//suppressioin avec objet
v.remove(new Integer(1));
System.out.println("suppression de l'entier 1 :"+v);
}
}
Sortie:

[1, 2, 3, 4]
suppressioin de l'élément à l'indice 2 : [1, 2, 4]
suppression de l'entier 1 :[2, 4]
Il y a aussi la méthode removeAll(Collection c) qui supprime un sous-ensemble de la liste. Pour vider la liste utiliser la méthode removeAll() qui supprime tous les éléments.

elementAt() et setElementAt()

get(int i) ou elementAt(int i) retourne l'élément à l'indice définie i et set(Object o, int i) ou setElementAt(Object obj, int i) remplace l'élément à l'indice i avec l'objet obj. get() est employé souvent pour retourner les éléments lors du parcours de Vector. La capacité est obtenue avec la méthode size().

import java.util.Vector;

public class Test {

public static void main(String[] args) {
Vector v = new Vector();

v.add(1);
v.add(2);
v.add(3);
v.add(4);

System.out.println("premier élément : "+v.firstElement());
System.out.println("dernier élément : "+v.lastElement());

for(int i = 0; i<v.size();i++)
System.out.println(v.get(i));

v.setElementAt("deux", 1);
System.out.println(v);
}
}
Sortie:

premier élément : 1
dernier élément : 4
1
2
3
4
[1, deux, 3, 4]

Rechercher un élément

La recherche dans un vector est facile, il faut appeler la méthode indexOf(Object o) qui retourne l'indice de la première occurrence trouvée. On a aussi la méthode lastIndexOf(Object o) qui retourne l'indice de la dernière occurrence trouvée.

import java.util.Vector;

public class Test {

public static void main(String[] args) {
Vector v = new Vector();

v.add("java");
v.add("c");
v.add("c++");
v.add("javascript");
v.add("java");

System.out.println("permière occurrence de c : "+v.indexOf("c++"));
System.out.println("dernier occurrence de java : "+v.lastIndexOf("java"));
}
}
Sortie

permière occurrence de c : 2
dernier occurrence de java : 4

Autres méthodes:

- int Capacity(): retourne la capacité de la liste.
- int setSize(): modifier la taille actuelle de la liste.
- boolean contains(Object o): vérifier si vector contient l'objet o.
- boolean isEmpty(): retourne vrai s'il est vide.
- Object[] toArray(): convertie vector en un tableau d'objets.

remarque:
size() retourne la taille de la liste et capacity() retourne la capacité que la liste peut acceuilir. Donc le parcours de Vector se fait toujours avec size() sinon une erreur s'affiche indiquant que vous avez dépassé la taille.

Références:
openclassroms vector java
javadoc: vector class