Google Guava es un conjunto de bibliotecas comunes para Java de código abierto (un modelo de desarrollo de software descentralizado que fomenta la colaboración abierta) , desarrollado principalmente por ingenieros de Google. Ayuda a reducir los errores de codificación. Proporciona métodos de utilidad para colecciones, almacenamiento en caché, compatibilidad con primitivas, simultaneidad, anotaciones comunes, procesamiento de strings, E/S y validaciones. El lanzamiento más reciente es Guava 25.0, lanzado el 2018-04-25.
¿Por qué guayaba?
- Al reemplazar las clases de biblioteca existentes con las de guayaba, puede reducir la cantidad de código que necesita mantener.
- Es un confiable, rápido y eficiente.
- Proporciona muchas clases de utilidad como Iterables, Listas, Conjuntos, Mapas, Multiconjuntos, Multimapas, Tablas que se requieren regularmente en el desarrollo de aplicaciones de programación.
- Muchas utilidades de Guava rechazan y fallan rápidamente en nulos, en lugar de aceptarlos a ciegas, ya que nulo a veces puede ser ambiguo.
- Simplifica la implementación de métodos de objetos, como hashCode() y toString().
- Guava proporciona a la clase Precondiciones una serie de condiciones previas comunes.
- La biblioteca Guava está altamente optimizada.
- Simplifica la propagación y el examen de excepciones y errores con la ayuda de la utilidad Throwables .
- La poderosa API de Guava ayuda a manejar rangos en tipos comparables, tanto continuos como discretos.
- Proporciona herramientas para hashes más sofisticados que los proporcionados por Object.hashCode(), incluidos los filtros Bloom.
- Proporciona utilidades matemáticas optimizadas y probadas a fondo que no proporciona el JDK.
- Guava proporciona algunas utilidades de strings extremadamente útiles, como dividir, unir, rellenar y más.
- Proporciona potentes utilidades de recopilación para operaciones comunes que no se proporcionan en java.util.Collections.
y muchos más….
Ejemplo: como sabemos, los tipos primitivos de Java son los tipos básicos: byte, short, int, long, float, double, char, boolean. Estos tipos no se pueden usar como objetos o como parámetros de tipo para tipos genéricos, lo que significa que no se les pueden aplicar muchas utilidades de propósito general. Guava proporciona varias de estas utilidades de propósito general, formas de interfaz entre arrays primitivas y API de colección, conversión de tipos a representaciones de array de bytes y soporte para comportamientos sin firmar en ciertos tipos.
Let us have an overview of utilities and classes that Guava provides over existing library classes.
- Clase opcional: el objeto opcional se usa para representar nulo con valor ausente. Muchos de los casos en los que los programadores usan nulo es para indicar algún tipo de ausencia, tal vez donde podría haber un valor, pero no lo hay, o no se pudo encontrar el valor. Optional< T > es una forma de reemplazar una referencia T anulable con un valor no nulo.
Un Opcional puede contener una referencia T no nula, es decir, en el caso en que decimos que la referencia está «presente», o puede no contener nada, es decir, en el caso en que decimos que la referencia está «ausente». Nunca se dice que «contenga nulo». - Clase de condiciones previas: Guava proporciona una serie de utilidades de verificación de condiciones previas. Las condiciones previas proporcionan métodos estáticos para verificar que un método o un constructor se invoque con el parámetro adecuado o no. Cada método tiene tres variantes:
- Sin argumentos extra.
- Un argumento de objeto adicional .
- Un argumento String extra , con un número arbitrario de argumentos Object adicionales.
Después de las importaciones estáticas, los métodos Guava son claros e inequívocos.
- Ordenar Clase: Ordenar es la clase de Comparador «fluida» de Guava, que se puede usar para construir comparadores complejos y aplicarlos a colecciones de objetos. Para poder adicional, la clase de pedido proporciona métodos de enstringmiento para modificar y mejorar los comparadores existentes.
- Clase de objetos: la clase de objetos proporciona funciones auxiliares aplicables a todos los objetos, como equals, hashCode, toString, compare/compareTo.
- Throwables: la clase Throwables proporciona métodos de utilidad relacionados con la interfaz Throwable. A veces, cuando detecta una excepción, desea devolverla al siguiente bloque de prueba/captura. Este suele ser el caso de las instancias de RuntimeException o Error, que no requieren bloques try/catch, pero pueden ser capturados por bloques try/catch cuando no es su intención. Guava proporciona varias utilidades para simplificar la propagación de excepciones.
- Utilidades de colección: Guava presenta muchas colecciones avanzadas. Estas se encuentran entre las partes más populares y maduras de la guayaba. Algunas de las colecciones útiles proporcionadas por Guava son: Multiset, Multimap, BiMap, Table, ClassToInstanceMap, RangeSet, RangeMap.
- Gráficos: common.graph de Guava es una biblioteca para modelar datos estructurados en gráficos, es decir, entidades y las relaciones entre ellas. Algunos ejemplos pueden ser:
- Páginas web e hipervínculos.
- Aeropuertos y las rutas entre ellos.
- Las personas y sus árboles genealógicos.
- Utilidades de strings: Guava presenta muchas utilidades de strings avanzadas como Joiner, Splitter, CharMatcher, Charsets, CaseFormat.
- Utilidades primitivas: como los tipos primitivos de Java no se pueden usar para pasar genéricos o en colecciones como entrada, Guava proporcionó muchas clases de utilidades de envoltura para manejar tipos primitivos como objetos.
- Utilidades matemáticas: Guava proporciona clases de utilidades relacionadas con las matemáticas para manejar int, long y BigInteger. Estas utilidades ya han sido probadas exhaustivamente para condiciones de desbordamiento inusuales. Han sido evaluados y optimizados. Están diseñados para fomentar hábitos de programación legibles y correctos.
- Cachés: Los cachés son tremendamente útiles en una amplia variedad de casos de uso. Por ejemplo, debe considerar el uso de cachés cuando un valor es costoso de calcular o recuperar, y necesitará su valor en una determinada entrada más de una vez. Un caché es similar a ConcurrentMap, pero no es exactamente lo mismo. En general, las utilidades de almacenamiento en caché de Guava son aplicables siempre que:
- Estás dispuesto a gastar algo de memoria para mejorar la velocidad.
- Espera que las claves a veces se consulten más de una vez.
- Su caché no necesitará almacenar más datos de los que caben en la RAM.
Para resumir las características geniales de la guayaba, consulte la tabla a continuación:
Discutiremos más en detalle sobre estas clases y utilidades en nuestros artículos futuros.
Referencia: Google Guayaba
Publicación traducida automáticamente
Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA