Predicate In Action

Habituellement, la recherche d'éléments dans une liste consiste à écrire une boucle de parcours d'éléments, un test pour savoir si l'élément parcouru est un de ceux que l'on cherche, puis à ajouter cet élément dans la liste de résultats. L'écriture de ce code est redondant, source d'erreurs et peut devenir complexe à lire et à maintenir.

Les prédicats permettent de simplifier l'écriture de méthodes de recherche d'éléments dans une liste.

En effet, l'interface Predicate permet d'externaliser la méthode de sélection des éléments recherchés.

Nous nous concentrons sur l'intention : que les éléments trouvés correspondent bien à ce que nous cherchons.

Ainsi, nous verrons une recherche classique de livres correspondant à certains critères. Ensuite nous verrons comment les bibliothèques common-collections d'Apache et guava de Google nous permettent de simplifier l'écriture de cette recherche à l'aide notamment de l'interface Predicate.

Exemple de recherche

Nous allons prendre comme exemple une bibliothèque qui dispose d'une liste de livre.

Pour chaque livre, nous disposons des informations suivantes : le titre, l'auteur et l'année de publication.

Nous recherchons les livres répondant aux critères suivant :

  • auteur : Rudyard Kipling
  • titre : le titre comporte les mots "jungle" et "grand"

Voyons comment nous pouvons effectuer cette recherche.