- 
                Notifications
    You must be signed in to change notification settings 
- Fork 11.1k
Release23
        Colin Decker edited this page Aug 7, 2017 
        ·
        3 revisions
      
    - 23.0 was released on August 4, 2017.
- 23.0-rc1 was released on July 25, 2017.
(See ReleaseHistory.)
Java 8:
Android / Java 7:
| Guava | Guava (Android) | Guava (GWT) | |
|---|---|---|---|
| Maven Identifier | com.google.guava:guava:23.0 | com.google.guava:guava:23.0-android | com.google.guava:guava-gwt:23.0 | 
| Jar | guava-23.0.jar | guava-23.0-android.jar | guava-gwt-23.0.jar | 
| Javadoc | guava-23.0-javadoc.jar | guava-23.0-android-javadoc.jar | guava-gwt-23.0-javadoc.jar | 
| Sources | guava-23.0-sources.jar | guava-23.0-android-sources.jar | guava-gwt-23.0-sources.jar | 
See UseGuavaInYourBuild for help integrating Guava into your build environment.
- Java 8: Full JDiff Report of changes since release 22.0.
- Android: Full JDiff Report of changes since release 22.0.
- 
ContiguousSet: new convenience methods for closed or closed-open sets ofIntegers orLongs
- 
Set<Set<E>> Sets.combinations(Set<E> set, int size): returns all subsets of the given set that have the given size
- New types: SuccessorsFunction/PredecessorsFunction- These interfaces are each supertypes of Graph/ValueGraph/Network. They have a few purposes:- scaffolding for migrating the capabilities of TreeTraverserintocommon.graph
- facilitating users using their own graph data structures (when they don’t need the full common.graphAPI)
 
- scaffolding for migrating the capabilities of 
 
- These interfaces are each supertypes of 
- New methods on Networkfor the case when there is known to be at most one edge connecting two nodes- 
java.util.Optional<E> edgeConnecting(N nodeU, N nodeV): Java 8 version only
- 
E edgeConnectingOrNull(N nodeU, N nodeV): all versions
 
- 
- New method for Graph/ValueGraph/Network- 
boolean hasEdgeConnecting(N nodeU, N nodeV): this is the preferred mechanism for determining whether there is an edge that connects two nodes
 
- 
- Changes to methods for accessing edge values in ValueGraph- old method: V edgeValue(N nodeU, N nodeV), throwsIllegalArgumentExceptionif no such edge exists
- new method (Java 8 only): java.util.Optional<V> edgeValue(N nodeU, N nodeV), returnsOptional.empty()if no such edge exists
- (no change to @Nullable V edgeValueOrDefault(N nodeU, N nodeV, @Nullable V defaultValue)) (Java 7 & 8)
 
- old method: 
- 
BloomFilter- is now thread-safe
- added Collectors for creating aBloomFilterfrom the contents of aStream
 
- 
PrimitiveSink,HasherandHashFunction: methods added to all for putting/hashingByteBuffers
- New type: FluentFuture- A ListenableFuturethat supports fluent chains of operations
 
- A 
- 
AbstractFuturehas been retrofitted to extend the newFluentFuturetype. If you subclassAbstractFutureto add fluent methods liketransform(), this may break you. If so, please report the problem.
- 
Futures: new methodsscheduleAsync(AsyncCallable, long, TimeUnit, ScheduledExecutorService)andsubmitAsync(AsyncCallable, Executor)
- Introduction
- Basic Utilities
- Collections
- Graphs
- Caches
- Functional Idioms
- Concurrency
- Strings
- Networking
- Primitives
- Ranges
- I/O
- Hashing
- EventBus
- Math
- Reflection
- Releases
- Tips
- Glossary
- Mailing List
- Stack Overflow
- Android Overview
- Footprint of JDK/Guava data structures