Td - utilisation des collections

Collections

Département de mathématiques
Licence MASS 1998
TD-TP
Université de Nice Sophia Antipolis





Exam

Problème1

Dans ce TD nous allons nous attacher a utiliser la collection Vector et définir, en plus des méthodes de l'API de cette classe de nouvelles méthodes.

Dans une classe sans champs ni constructeur definir:

1) Une méthode qui affiche le contenu d'un vector passé en argument.

2) Une méthode qui prend un vector en argument et qui retourne un vector avec les éléments dans l'ordre inverse.

3) Une méthode qui prend deux vectors et qui retourne un vector concaténation de ces deux vectors.

Ces méthodes devront etre testées en les utilisant dans un petit programme.
Celui-ci consiste a construire deux vectors de Livres vecLivre1 et vecLivre2, de les afficher, de les afficher apres permutation, d'afficher le vecteur obtenu par concaétnation des vectors vecLivre1 et vecLivre2.
Remarque Ne pas oublier de définir la methode public String toString() dans la classe Livre si ce n'est deja fait.

4) Définir une méthode qui affiche le titre des éléments d'un vector qui sont de la classe Livre. Pour cela il faut s'assurer que l'élément est de la classe Livre en utilisant l'instruction instanceof tel que

obj instanceof Livre

retourne vrai si l'objet obj est une instance de la classe Livre. Si l'on s'est assure que obj est de la classe Livre, on ne peut lui appliquer la methode titre() qu'apres un cast :

((Livre)obj).titre()

Appliquer cette methode sur un vecteur de livres.

Problème 2

- Utilisation des inner classes -

Dans ce probleme nous nous proposons de creer notre classe de vecteurs appeles MyVector qui aura un vecteur de la classe Vector comme champ. Nous definirons :

- un constructeur
- une methode add(Object obj)


Mais nous dèfinissons aussi

- une inner classe private EnumerationVector qui implemente l'interface MyEnumeration tel que

interface MyEnumeration{
boolean hasMoreElements();
Object nextElement();
}

- une methode de MyVector
MyEnumeration getElements( ){return new EnumerationVector; }


Cette classe sera testee a partir de la classe test suivante :

public class Test{
public static void main(String args[]){
MyVector mv = new MyVector();
mv.add("aaa);
mv.add("bbb");
for(MyEnumeration myenum = mv.getElements(); myenum.hasMoreElements();)
System.out.println(myenum.nextElement());
}
}

import java.util.*; class OpVect { static Vector permutte(Vector v){ Object temp; for(int i=0; iMichel Bourdelles Last modified: Tue Mar 24 14:39:19 MET