Fiche technique | |
---|---|
Type de produit : | Bibliothèque |
Catégorie : | Utilitaire et collection |
Langage de programmation : | Java |
Auteur : | |
Date de publication : | 2009 à maintenant |
Licence : | Apache License Version 2.0 |
Site Web : | https://github.com/google/guava |
Introduction
Le Guava est une bibliothèque open-source développée par Google, principalement destinée à Java. Elle fournit un ensemble d'outils et d'utilitaires pour faciliter le développement de logiciels en Java en étendant les capacités du langage de programmation et des bibliothèques standard. LE Guava est largement utilisée dans le développement d'applications backend, y compris au sein des systèmes de Google.
Voici les principales fonctionnalités de Guava :
- Collections améliorées :
- Immutable Collections : Collections immuables, c'est-à-dire non modifiables après leur création, offrant une sécurité accrue et des performances optimisées.
- Multimap : Une collection permettant d'entreposer plusieurs valeurs pour une seule clef, une fonctionnalité souvent manquante dans la bibliothèque standard.
- Multiset : Une collection permettant d'entreposer plusieurs occurrences d'un même élément, contrairement à Set n'entreposant qu'une seule occurrence.
- BiMap : Une implémentation de Map où les clefs et les valeurs sont uniques, offrant la possibilité d'effectuer des recherches dans les deux sens.
- Utilitaires pour les Strings : Joiner et Splitter : Classes utilitaires pour manipuler les chaînes de caractères, facilitant la concaténation ou la séparation de chaînes avec différents délimiteurs.
- Utilitaires pour la gestion des préconditions : Méthodes comme Preconditions.checkArgument(), checkState(),..., pour valider les entrées et les états des programmes, en lançant des exceptions appropriées si les conditions ne sont pas remplies.
- Fonctionnalités de cache : Guava fournit un mécanisme de cache en mémoire, permettant de stocker temporairement des objets pour améliorer les performances d'accès.
- Manipulation des objets Optionnels : Une classe Optional<T> permettant de représenter un objet pouvant ou non avoir une valeur (évitant ainsi les erreurs dues aux nulles).
- Types fonctionnels : Guava offre des types comme Function, Predicate, Supplier, et Consumer, permettant un style de programmation fonctionnel, avant que ces concepts ne soient introduits nativement dans Java 8.
- Gestion des concurrents :
- ListenableFuture : Un mécanisme pour gérer les futures, avec des callbacks pouvant être exécutés lorsque le résultat est disponible. Il offre plus de flexibilité que l'interface Future standard de Java.
- RateLimiter : Un utilitaire pour limiter le taux d'exécution de certaines tâches (par exemple, pour ne pas surcharger un serveur avec trop de requêtes en peu de temps).
- Extensions des comparateurs : Guava propose des comparateurs prêts à l'emploi avec sa classe Ordering, permettant de trier les collections de manière flexible et puissante.
Remarque
- La bibliothèque Guava est utilisé par des nombreuses technologies concurrentes comme par exemple l'unité DW.Androidapi.JNI.Guava de la bibliothèque Kastri en Delphi ou C++Builder.
Dernière mise à jour : Vendredi, le 6 mars 2020