Notes sur les vecteurs



Qu'est qu'un vecteur ?


Un vecteur peut etre considere comme un tableau dont la taille s'adapte automatiquement au besoin.

Lorsque la taille du vecteur devient insufisante, celle ci est automatiquement augmentee. L'augmentation de la taille du vecteur depend du parametre increment. Deux possiblites:
  • la taille est doublee (increment = 0)
  • la taille est augmentee de N elements (increment = N)



Attention !

Tout comme les tableaux, les vecteurs permettent de ne stocker que des objets de "meme" type (on peut toutefois utiliser l'heritage - ie les "sur sacting - pour stocker differents types d'objets derivant tous d'une meme classe).

Le vecteurs ne peuvent pas etre utilises pour stocker des primitives.

Les vecteurs ne sont pas une particularite de JAVA. Le C++ possede aussi une implementation de "vecteur".

Exemple


Fichier test.java
public class test
{
  public static void main (String[] atgv)
  {
    java.util.Vector vec1 = new java.util.Vector();
    System.out.println("Taille du vecteur vec1: "+ vec1.size());
    System.out.println("Ajout de 3 elements ...");
    vec1.addElement (new element(1));
    vec1.addElement (new element(2));
    vec1.addElement (new element(3));
    System.out.println("Taille du vecteur vec1: "+ vec1.size());
    System.out.println("Affichage des elements du vecteur");

    // - Attention: noter l'operation de "casting" (element)
    // - Les vecteurs permettent de stocker des objets de classes differentes
    // mais il ne stockent pas l'information "type de l'objet".
    for (int i=0; i< vec1.size(); i++)
        System.out.println(i + ") " + ((element)(vec1.elementAt(i))).GetVal());
  }
}

class element
{
  int val;

  element(final int v) { val = v; }
  int GetVal() { return val; }
  void SetVal(final int v) { val = v; }
}


A l'execution on obtient l'affichage suivant:

C:\programmes\java>java test
Taille du vecteur vec1: 0
Ajout de 3 elements ...
Taille du vecteur vec1: 3
Affichage des elements du vecteur
0) 1
1) 2
2) 3