Skip to content

1.9-beta-3

Pre-release
Pre-release

Choose a tag to compare

@brianburton brianburton released this 07 Oct 13:32
· 748 commits to master since this release

Beta 3 Release for 1.9

It's been a long time coming but the 1.9 release is finally near. At this point the new code appears to be solid but releasing as a beta first to allow others to try it out in advance. This is a significant release with several new collection types and performance enhancements.

New JImmutableRandomAccessList implementation

Previous releases used a 2-3 tree implementation of JImmutableRandomAccessList that performed adequately but was much slower than the hash trie based JImmutableList implementation. In 1.9 the JImmutableRandomAccessList has been re-implemented as a B-Tree. The B-Tree decreases the average depth of the tree and has more than 2x the performance of the 2-3 tree. In fact benchmarks using large lists (more than 20k values in the list) out performed the standard java.util.ArrayList for sequences of inserts and deletes in random positions within the list. The hash trie is still faster but the performance gap is much smaller than before.

JImmutableMultiset

This new collection provides functionality similar to Guava's Multiset but in an immutable form. Methods in the interface allow the multiset to interact with normal sets in rational ways while also exposing the new capabilities. Hashed, sorted, and in-order versions are available. (shout out to Angela Burton)

JImmutableSetMap

This much needed new collection is similar to JImmutableListMap but values for key are JImmutableSets instead of JImmutableLists. Hashed, sorted, and in-order versions are available. (another shout out to Angela)

Expanded Stress Test Tool

The new and improved stress test tool, used for pre-release endurance testing, tests more collection types and covers more methods of all collections than the old one. Greatly expands the pre-release test coverage for the library. (Angela again)

Issue Resolution

#4 Added extra type declarations to work around eclipse compiler bug.