-
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