|
|
Travail sur la notion de vecteur. | Vecteur.java
VecteurAbstrait.java VecteurStatique.java VecteurDynamique.java |
|
|
La classe Stack et l'inversion
de chaine de caractères. |
MiroirLettres.java
|
|
|
Toujours la classe Stack,
mais manipulation de mots. |
MiroirMots.java
|
|
|
La classe Vector (assez proche
de notre VecteurDynamique ) |
CompterMotsAvecVector.java
|
|
|
La classe HashTable. |
CompterMotsAvecHashtable
.java
|
| Release candidate of next stable version: | 4.0pre8 | ||
| Download: | Java-based installer | 1.7 Mb | (For any operating system) |
Exercice 1 :
| interface Vecteur { public void setAt(int index, Object o); public Object getAt(int i); public int size(); public void clear(); } |
| class TestVecteur { public static void main(String[] args) { Vecteur v = new VecteurStatique(5); for (int i=0; i<5; i++) { v.setAt(i, new String("item "+i)); } System.out.println("Taille = "+v.size()+" and v = "+v); v.setAt(3, null); System.out.println("Removing third element"); System.out.println("Taille = "+v.size()+" and v = "+v); v = new VecteurDynamique(); for (int i=0; i<15; i++) { v.setAt(i, new String("item "+i)); } System.out.println("Taille = "+v.size()+" and v = "+v); v.setAt(3, null); System.out.println("Removing third element"); System.out.println("Taille = "+v.size()+" and v = "+v); System.out.println("Trying to retrieve 60th element = "+v.getAt(60)); } } |
| secq@beckett:~/IUT/coo/td7$
java TestVecteur Taille = 5 and v = {item 0, item 1, item 2, item 3, item 4} Removing third element Taille = 4 and v = {item 0, item 1, item 2, null, item 4} Taille = 15 and v = {item 0, item 1, item 2, item 3, item 4, item 5, item 6, item 7, item 8, item 9, item 10, item 11, item 12, item 13, item 14} Removing third element Taille = 14 and v = {item 0, item 1, item 2, null, item 4, item 5, item 6, item 7, item 8, item 9, item 10, item 11, item 12, item 13, item 14} Trying to retrieve 60th element = null |
| public class Application
{ public static void main(String args[]) { StringTokenizer st = new StringTokenizer("this is a test"); while (st.hasMoreTokens()) System.out.print(st.nextToken()+" / "); } } |
Utiliser une Stack pour retourner les mots d'une String, on utilisera l'algorithme
de l'exo précédent. Afficher la nouvelle String
Ex : à partir de la String "this is a test" on fabrique la String
"test a is this"
Utiliser un Vector pour batir une table des mots extraits d'une String
(chaque mot n'est mis qu'une seule fois dans la table). Puis afficher les
mots de la table (une énumération peut être avantageusement
utilisée).
Ex : à partir de la String "this is this test" on affiche : this
is test
Utiliser une Hashtable pour batir une table des mots extraits d'une String
(comme dans l'exo précédent) tout en les comptant, puis afficher
les mots de la table et leur nombre (énumération ?). On utilisera
des couples:
clé=String / valeur=int.
Il faut encapsuler l'entier pour en faire un Object en utilisant la classe
wrapper Integer.
Ex : à partir de la String "this is this test" on affiche : (2,this)
(1,is) (1,test)
La classe Integer n'est pas très pratique car comme elle est finale
on ne peut lui rajouter une incrémentation qui simplifirait l'écriture,
il faut donc encapsuler l'entier dans une classe écrite pour cela et
munie d'une méthode d'incrémentation. Réécrire
le programme en utilisant une telle classe.