Primitive-Collections v0.5.0 Release Notes

    • โž• Added: 2 Helper functions to find out how many bits are required to store a Number.
    • โž• Added: pour function directly into Iterable which allows to collect all elements in the Iterable directly.
    • โž• Added: The new ToArray method from Java9 and newer into the library. Using a functional interface. (Just a backport)
    • ๐Ÿ”„ Changed: Reworked how the Map Builder functions are created. They are now in a SubClass that moves them out of the way. Less Clutter. (This might break things if that was used before)
    • โž• Added: Map Builder that allows now to Build Maps like Guava ImmutableMaps can be build. Note: This has a slight performance overhead.
    • โž• Added: Unmodifiable and Synchronize wrapper functions direclty into Collection Interfaces. This is mostly a quality of life thing.
    • โž• Added: Unmodifiable and Synchronized Wrapper Collections can now be cloned. They clone the underlying map which doesn't break functionality. (Had a usecase for it)
    • โž• Added: A boxed putAll array variant.
    • ๐Ÿ›  Fixed: EnumMaps didn't keep track of their size and now got proper care and implementations as needed. There might be more work required but at least the core functionality is now up to date.
    • โž• Added: Tests for the new Stream replace functions to ensure no bugs are left.
    • ๐Ÿ›  Fixed: Custom HashSet reduce function with a default value was checking incorrectly for present keys.
    • โž• Added: Guava TestSuit
    • ๐Ÿ›  Fixed: HashCode and toString method would crash if the Object Key/Value was null
    • โž• Added: AbstractTypeCollection now delegates the contains check to type-specific Collections if it detects it.
    • ๐Ÿ›  Fixed: Map.Entry toString wasn't writing values not like it should do.
    • ๐Ÿ›  Fixed: Set.hashCode now is the sum of the elements instead of a Unique HashCode based on the elements.
    • ๐Ÿ›  Fixed: Added missing NonNull Checks.
    • ๐Ÿ›  Fixed: Custom/OpenHashMap.containsValue implementation was wrong.
    • ๐Ÿ›  Fixed: Custom/OpenHashMap.compute/present/absent now works how it is specified in the Java Documentation
    • ๐Ÿ›  Fixed: Custom/OpenHashMap.merge/BulkMerge now works how it is specified in the Java Documentation
    • ๐Ÿ›  Fixed: Custom/Linked/OpenHashMap.keySet.remove was causing a infinite loop.
    • ๐Ÿ›  Fixed: Custom/Linked/OpenHashMap.entrySet.contains was not correctly comparing the entry.
    • ๐Ÿ›  Fixed: Custom/OpenHashMap.mapIterator now no longer crashes in certain cases.
    • โž• Added: Custom/LinkedOpenHashMap now takes use of the improved Iterator it has for containsValue
    • ๐Ÿ›  Fixed: CustomOpenHashMap.keySet.forEach was basically putting out keys even if they were present
    • ๐Ÿ›  Fixed: ImmutableMaps issues thanks to the tests. Roughly the same as the rest of the maps
    • ๐Ÿ›  Fixed: RB/AVLTreeMaps issues. Roughly the same as the rest of the maps
    • ๐Ÿ›  Fixed: SubLists are now properly implemented.
    • ๐Ÿ›  Fixed: HashSet Iterator bugs now fixed... That was Painful.
    • โž• Added: Tests for Lists and Sets