| Google Guava | |
|---|---|
| Basisdaten | |
| Hauptentwickler | Google Guava Community |
| Entwickler | Google Guava Community |
| Aktuelle Version | 33.7.2 (29. September 2026) |
| Betriebssystem | plattformunabhängig |
| Programmiersprache | Java |
| Lizenz | Apache-Lizenz 2.0 |
| github.com/google/guava | |
Google Guava ist eine freie Sammlung von Programmbibliotheken für die Programmiersprache Java. Die Sammlung ist als Ergänzung zur Funktionalität der Java-Klassenbibliothek gedacht und erweitert diese beispielsweise bezüglich Collections, I/O-Unterstützung oder Stringmanipulationen.
Google Guava wird hauptsächlich von Google-Entwicklern gewartet und wird von Google in ihren Java-Projekten verwendet.
Google Guava gilt als eine der populärsten Java-Bibliotheken.
Google Guava wurde ursprünglich unter dem Namen Google Collections Library von Kevin Bourrillion und Jared Levy entwickelt.
Die Umsetzung und Architektur der Google Collections Library war teilweise motiviert durch die mit Java 5 eingeführte Generische Programmierung in Java. Obwohl die Einführung von Generics die Produktivität bei der Entwicklung verbesserte, gab es nicht genügend unterstützende Funktionalität in der Java-Klassenbibliothek. Die dafür meist eingesetzte Apache-Commons-Collections-Bibliothek wurde aber aus Gründen der Abwärtskompatibilität bis Version 4.0 Ende 2013 nicht für Generics angepasst. Das motivierte Kevin Bourrillion und Jared Levy dazu, eine Erweiterung für das Java Collections Framework zu schreiben, welche generische Collection-Klassen wie Multisets, Multimaps, Bimaps oder unveränderliche Collections enthält. Dabei wurden sie unterstützt von Joshua Bloch, dem Autor von „Effective Java“ sowie Doug Lea, einem der Lead Designers der Java Concurrency Utilities der Java-Klassenbibliothek.
Google Guava kann grob in folgende Bestandteile aufgeteilt werden:
hashCode()- und toString()-Methoden.Map<K, List<V>>)Einige der Bestandteile (beispielsweise I/O-Unterstützung) wurden durch Java 7 obsolet, andere (funktionale Programmierung) werden durch Funktionalität in Java 8 (Closures) überflüssig.