pdf - e-book - archive - github.com

2.13  Collections

2.13.1  Types paramétrés

Exercice 1 Paire

Créez une classe Paire<T> contenant deux objets de même type T et deux getters.

Corrigé

Exercice 2 Héritage

Vérifiez expérimentalement si ClasseParametree<String> hérite de ClasseParametree<Object>. Trouvez une explication...

Corrigé

Exercice 3 Pile

Reprenez la classe Pile et adaptez-le pour que la pile, implémentée avec des listes chaînées devienne un type paramétré.

Télécharger la pile

Corrigé

Exercice 4 Paire Ordonnée

Créez une classe PaireOrdonnee<T extends Comparable<T>> extends Paire<T> contenant deux méthodes getPetit() et getGrand() retournant respectivement le plus petit des deux objets et le plus grand.

Corrigé

Exercice 5 Paire Ordonnée Comparable

Créez une classe PaireOrdonneeComparable<T extends Comparable<T>> extends PaireOrdonnee<T> implements Comparable<PaireOrdonnee<T>>. Vous comparerez deux paires ordonnées en comparant leurs plus grandes valeurs.

Corrigé

2.13.2  Collections

Exercice 6 Pile Iterable<T>

Modifiez la Pile pour qu’elle implémente Iterable<T>. Adaptez la fonction toString() en conséquence.

Corrigé

Exercice 7 Parcours

Créez un TreeSet<T>, placez-y des PaireOrdonneeComparable<Integer>, et parcourez-le en affichant ses valeurs.

Corrigé

2.13.3  Morceaux choisis

Exercice 8 Tableaux creux

Implémentez l’interface Tableau creux, l’itérateur implémenté ne devra passer que par les éléments non nuls du tableau. Votre itérateur retournera tous les éléments non null du tableau.

Dans une classe paramétrée en java, on ne peut pas instancier un tableau T[], vous êtes obligé de remplacer le tableau par une collection.

package collections.interfaces;

public interface TableauCreux<T> extends Iterable<T>
{
 public T get(int i);

 public void set(int i, T item);
}

Télécharger le fichier

Corrigé

Exercice 9 Map

Implémentez l’interface de l’exercice précédent avec une Map.

Corrigé

Exercice 10 Matrice

Créez une classe itérable permettant de représenter une matrice.

package collections.interfaces;

public interface Matrice<T> extends Iterable<T>
{
 public T get(int i, int j);

 public void set(int i, int j, T value);
}

Télécharger le fichier

Corrigé

Exercice 11 Filtre

Créez une interface Condition<U> contenant une méthode boolean check(U item). Créez une classe filtre Filtre<T, U> contenant un Condition<U> et permettant de filtrer une sous-classe T de Iterable<U>. Créez une méthode filtre(Collection<T> condition) retournant un itérable contenant tous les éléments de la collection qui vérifient check.

Corrigé