JEP 108: Collections Enhancements from Third-Party Libraries

AuthorMike Duigou
OrganizationOracle Corporation
Created2011/9/23
Updated2013/1/14
TypeFeature
StateCandidate
Componentcore/libs
ScopeSE
Discussioncore dash libs dash dev at openjdk dot java dot net
Start2011/Q1
EffortM
DurationL
Endorsed-byBrian Goetz

Summary

Evolve the Java Collections Framework by adopting common and popular functionality from third-party libraries.

Goals

Non-Goals

The goal is not to eliminate 3rd party libraries. There will always be functionality that we choose not to include in JDK and library authors will always continue to develop new libraries.

Success Metrics

Motivation

The small improvements to the java.lang utilities such as Objects.requireNonNull have been very well received already. These type of improvements are very much appreciated by working Java developers. We will be adopting the “best bits” from 3rd party libraries. This serves to reduce the need or demand for those libraries.

Description

Two categories of “Best Bits” will be adopted:

Alternatives

Have Java depend upon 3rd party collections libraries as is done with XML, portions of JCE (NSS), and JavaScript (Rhino).

Testing

Standard for Java Collections Framework.

Risks and Assumptions

The biggest risk is in the requirements imposed by JEP 107 which are not yet fully determined. Perhaps this should be split into two JEPs, one low risk and second for as yet undetermined functionality.

Dependences

This proposal is partly in support of JEP 107. The requirements for new data structures will be driven by the needs of that JEP.

Impact