Dans cette fiche...

<Retour>

Description de l'applet

Difficulté : Résultat
Si vous connaissez les tableaux, vous savez que ceux-ci comportent des limites :
  • avant de remplir le tableau, on doit connaître le nombre d'éléments à manipuler
  • la taille du tableau n'est pas variable.

Les vecteurs pallient ces 2 inconvénients...

Votre navigateur n'est pas compatible Java !

Listing de l'applet

// -----------------------------------------
// VECTEUR1 : LES VECTEURS EN JAVA
// -----------------------------------------
import java.applet.*;
import java.awt.*;
import java.util.Vector;
public class Vecteur1 extends Applet
{
	// Déclaration du vecteur
	Vector v;
	// --------------------------
	// INITIALISATION DE L'APPLET
	// --------------------------
	public void init()
	{
		// Couleur de fond
		setBackground(Color.black);
		// Initialisation du vecteur
		v = new Vector();
		v.addElement("lundi");
		v.addElement("mardi");
		v.addElement("mercredi");
	}
	// ---------
	// AFFICHAGE
	// ---------
	public void paint(Graphics g)
	{
		String s;
		int i;
		// Nombre d'éléments dans le vecteur
		g.setColor(Color.white);
		g.drawString("Nombre d'éléments : " + v.size(), 15, 15);
		// Afficher le contenu du vecteur
		g.setColor(Color.orange);
		for(i = 0; i < v.size(); i++)
		{
			s = (String)v.elementAt(i);
			g.drawString(s, 15, 30 + i*10);
		}
		// Afficher les première et dernière valeurs du vecteur
		g.setColor(Color.yellow);
		g.drawString("Le premier élément est : " + (String)v.firstElement(), 15, 70);
		g.drawString("Le dernier élément est : " + (String)v.lastElement(), 15, 80);
	}
}

Le listing en détail...

Les lignes non commentées ont déjà été traitées dans les exemples précédents.

import java.util.Vector;
Pour pouvoir utiliser l'objet Vector, il faut inclure le package java.util.Vector en début de listing.
On aurait également pu écrire : import java.util.*; pour inclure tous les objets du package util.
   
// Déclaration du vecteur
Vector v;
Le commentaire parle de lui-même : on vient de déclarer une variable de type Vector.
Cette variable n'a pour l'instant aucune valeur (elle n'est pas initialisée).
 
// Initialisation du vecteur
v = new Vector();
L'instruction new permet d'initialiser l'objet Vector (comme pour tout objet).
On aurait pu également écrire : v = new Vector(5); pour réserver 5 valeurs dès le départ dans le vecteur.
 
v.addElement("lundi");
v.addElement("mardi");
v.addElement("mercredi");
Maintenant que le vecteur existe, on peut lui ajouter des éléments, grâce à la méthode addElement(). Les éléments s'ajoutent en fin de vecteur.
Chaque élément se voit attribuer implicitement un indice, allant ici de 0 à 2 (et non de 1 à 3).

Dans notre exemple, ce sont des chaînes de caractères qui sont ajoutées au vecteur. On peut bien sûr stocker tout type d'objet dans un vecteur.

 
g.drawString("Nombre d'éléments : " + v.size(), 15, 15);
Il est possible de connaître le nombre d'objets stockés dans un vecteur (et de l'afficher).
On utilise pour cela la méthode size() de l'objet Vector.
 
for(i = 0; i < v.size(); i++)
{
	s = (String)v.elementAt(i);
	g.drawString(s, 15, 30 + i*10);
}
Pour afficher tous les éléments (de 0 à n-1), on utilise une boucle for.
La méthode elementAt() donne l'objet stocké dans le vecteur en position i.

Attention : la méthode elementAt() donne un objet générique. Il faut donc convertir l'objet pour l'utiliser.
La conversion (cast en anglais), se fait en précédent l'objet d'un nouveau type de données, entre parenthèses.
Ainsi :

  • v.elementAt(i) est un objet quelconque.
  • (String)v.elementAt(i) est le même objet, converti en chaîne de caractères.

Si le vecteur avait servi à stocker des applets, par exemple, on aurait écrit : (Applet)v.elementAt(i)

 
g.drawString("Le premier élément est : " + (String)v.firstElement(), 15, 70);
g.drawString("Le dernier élément est : " + (String)v.lastElement(), 15, 80);
Des variantes de elementAt() firstElement() et lastElement() permettent de connaître le premier le dernier objet stocké.
Ce qui veut dire que :
  • v.firstElement() est égal à v.elementAt(0)
  • v.lastElement() est égal à v.elementAt(v.size()-1)

On fait plus rapide cette fois : au lieu de passer par une variable intermédiaire, on convertit directement v.firstElement() et v.lastElement() au moment de l'affichage.

Intégration de l'applet dans la page

Voici le code qui a été utilisé dans cette page HTML pour faire apparaître l'applet :

<applet code="Vecteur1.class" width=250 height=90>
Votre navigateur n'est pas compatible Java !
</applet>

Pour plus de précisions sur l'intégration d'une applet, cliquez ici.