Eclipse Collections 11.1.0

New Functionality 

Helpful and convenient APIs -  These are API requested either by the community or by project committers.

  • Added Bag.distinctView(). 
  • Added Bags.mutable.withInitialCapacity.
  • Added forEachInBoth to Primitive Lists.
  • Added MultiReader to Bags, Lists, Sets factory in API module.
  • Added Primitive Bag/Set/Stack factories in API module.
  • Added factory for ObjectPrimitiveHashMapWithHashingStrategy.
  • Added withInitialCapacity api in mutableObjectPrimitiveHashingStrategyMapFactory.
  • Added ability to create Hashing Strategy Sets, Maps and Bags using Function.
  • Added injectInto for primitive types to primitive iterables.
  • Added injectIntoKeyValue to MapIterable, objectPrimitiveMap, primitiveObjectMap, primitivePrimitiveMap.
  • Added mutable reduction scenario to injectIntoKeyValue test for primitive maps.
  • Added object to primitive map factory to API module.
  • Added of and with factory methods to object -> primitive map factories.
  • Added of and with factory methods to primitive -> primitive and primitive -> object map factories.
  • Added withKeyMultiValues to MutableMultimap and subtypes. 
  • Added withKeyValue to MutableMultimap and subtypes.
  • Added getAndPut to mutableObjectPrimitiveMap to retrieve the value associated with the key if one exists.
  • Added peekAndPop methods in ImmutableStack.
  • Added fused method for collect and makeString.
  • Added missing implementations of toString().
  • Added selectWithIndex and rejectWithIndex to Ordered Primitive Iterables.
  • Implemented containsAny, containsNone, containsAnyIterable, containsNoneIterable on RichIterable.

Tech Debt Reduction  

  • Replaced implementation factories and dependencies with API factories where possible.
  • Fixed CheckStyle configuration for NewlineAtEndOfFile so that it works across operating systems.
  • Made forEach a default method on primitiveIterable.stg.
  • Made noneSatisfy a default method on primitiveIterable.stg.
  • Removed unnecessary implementations of toSortedList/Set/Bag/MapBy.
  • Disambiguate and deprecate primitive injectInto methods on RichIterable.
  • Improved code generation logic into separate goals for sources, test-sources, and resources.
  • Improved PIT mutation test coverage.
  • Improved overall test coverage by adding missing tests. 

Optimizations 

  • Optimized asParallel() for immutable sets in O(1) instead of O(n).
  • Optimized some implementations of toString() that were delegating to iterators.
  • Improved equals() performance for Set implementations.



Ongoing maintenance changes 

Upgrades to project dependencies - actions/cache, actions/upload-artifact, actions/checkout, checkstyle, maven-site plugin, maven-shade plugin, setup-java. Other changes include converting reference guide to AsciiDoc format. 

 

Release Date
Release Type
Minor release