Title: Les vecteurs en Java
1Les vecteurs en Java
2Limite des tableaux en Java
- Allocation gérée par le programmeur
- Déclaration de la taille
- Taille prédéfinie gt tableau figé une fois pour
toutes
int unTableau new int 1024 for ( int
i0 i lt unTableau.length i ) unTableaui
i
unTableau
0
1
2
0
unTableau.length - 1
indice
3Vector
- Implante la notion de liste de références
dobjets - Capable de s'agrandir en fonction des besoins
- Instancier un Vector
- new Vector ()
- On n'indique pas sa dimension
Vector phrase new Vector ()
4Ajouter / remplacer un élément
- Ajout
- à la fin void addElement( Object obj )
- à la position index void insertElementAt (
Object obj, int index) - index est compris entre 0 et nombre d éléments
du vecteur -1 - Remplacer
- à la position index void setElementAt ( Object
obj, int index )
phrase.addElement ( " ou" ) Rappel une
variable phrase.addElement( " conduire" ) de
type String est un phrase.addElement( " il faut"
) objet en java. phrase.addElement( " choisir"
) phrase.insertElementAt( "Boire", 0
) phrase.setElementAt( " fumer", 2 )
5Supprimer un élément
- // enlever l'élément à la position index void
removeElementAt ( int index ) - // vider le vecteurvoid removeAllElements ()
- // Enlève la première occurrence de obj// Le
résultat est false si lobjet nest pas trouvé
boolean removeElement ( Objet obj )
phrase.removeElement ( " ou" )
6Méthodes dinterrogation
- Déterminer le nombre déléments
- int size ()
- Tester si la séquence est vide
- boolean isEmpty ()
- Obtenir un élément
- Object firstElement ()
- Object lastElement ()
- Object elementAt ( int index )
- Rechercher
- boolean contains ( Object obj )
- int indexOf ( Object obj ) // retourne -1 si
la recherche naboutit pas - int lastIndexOf ( Object obj ) // index de la
dernière occurrence
7Exemples d'interrogation
Vector phrase new Vector() int
i String phraseEntiere "" // // for (
i0 i lt phrase.size() i ) phraseEntiere
phraseEntiere phrase.elementAt( i
) System.out.println( phraseEntiere )
8Vecteur d'objets
- Un vecteur ne stocke que des objets
- il n'existe pas de vecteur de "int", "double"
(les types élémentaires) - Envelopper les types élémentaires int, double
- Utiliser les classes enveloppes correspondant aux
types élémentaires - Un même vecteur peut stocker simultanément des
objets de différentes classes - il est donc nécessaire de typer explicitement les
objets extraits d'un vecteur avant de les
utiliser - utilisation du "cast" par exemple, (type)
elementAt( index )
9Les classes enveloppes
- Encapsuler un type élémentaire dans un objet
- Boolean, Character, Double, Integer, Long
- Méthodes pour extraire la valeur encapsulée
- ltnomDuTypeElementairegtValue()
Constructeur new classeEnveloppe( )
Type élémentaire
Classe enveloppe
Méthode d'extraction ltnomDuTypeElementairegtValue
()
10Exemple de la classe Integer
Integer
int i Integer enveloppe new Integer (3) i
enveloppe.intValue()
value entier
Integer() intValue() entier
new Integer( ... )
int
Integer
enveloppeInteger
intValue()
11Vecteur dentiers
- Encapsulation
- int ? Integer
- double ? Double
int x 1 unVector.addElement ( new Integer (x)
)
Ajouter
unVector
Accéder
int y ( (Integer) ( unVector.elementAt( i ) )
).intValue()
12SommeDesDepots
import java.util. class CompteBancaire
Vector historiqueDepots CompteBancaire
() historiqueDepots new
Vector() void deposer ( double montant )
historiqueDepots.addElement( new Double
(montant) ) double sommeDesDepots ()
double sommeDesDepots 0 Double
depot for ( int i0 i lt
historiqueDepots.size() ii1 ) depot
(Double)( historiqueDepots.elementAt(i)
) sommeDesDepots sommeDesDepots
depot.doubleValue()
return sommeDesDepots
CompteBancaire.java