This release brings a few nice improvements from Bruno: SortedIterationKTypeVTypeHashMap view that allows you to traverse maps in sorted key order, an efficient QuickSort implementation for faster sorting and a few minor additions to the API.
GH-31: Added QuickSort and used it in SortedIterationKTypeVTypeHashMap. (Bruno Roustant)
QuickSort can be used with custom element comparator and swapper.
GH-28: Added SortedIterationKTypeVTypeHashMap: a sorted-iteration order view over
another key-value map. (Bruno Roustant)
Improvements
GH-26: Moved putIfAbsent to interface KTypeVTypeMap. (Dawid Weiss)
GH-25: Added addAll(KTypeContainer) on KTypeSet. (Erich Schubert, Dawid Weiss).
GH-27: Added identity short circuit to existing equals methods. (Callum Galbreath).
Release 0.9.0
This is the API-breaking release of HPPC in a longer while. A new interesting associative container has been added (see worm hashing issue below) and some changes have been made to get rid of the Scatter*-type containers. You can now safely use either worm or regular version of hash maps and sets.
Java 11 is now required to compile HPPC. The resulting binary JAR is Java 1.8 compatible (Dawid Weiss).
GH-24: Support indexRemove in KTypeVTypeHashMap,KTypeHashSet,KTypeWormSet (Bruno Roustant).
GH-20: KeysContainer of WormMap is not public (Haoyu Zhai, Bruno Roustant).
GH-13: Add automatic module name to the generated JAR's manifest ("com.carrotsearch.hppc").
HPPC-179: Update java template parser to support Java 8.
HPPC-186: A different strategy has been implemented for collision avalanche avoidance. This results in removal of Scatter* maps and sets and their unification with their Hash* counterparts. This change should not affect any existing code unless it relied on static, specific ordering of keys. A side effect of this change is that key/value enumerators will return a different ordering of their container's values on each invocation. If your code relies on the order of values in associative arrays, it must order them after they are retrieved. (Bruno Roustant).
HPPC-176: A new set of associative containers implementing Worm Hashing has been added. This strategy is appropriate for a medium sized maps and sets (less than 2M entries). It takes more time to put entries in the map because it maintains chains of entries having the same hash. Then the lookup speed is fast even if the map is heavy loaded or hashes are clustered. On average it takes slightly less memory than KTypeVTypeHashMap: even though it allocates more data structures, the reasonable load factor is higher (it varies around 80%) so containers enlarge later. (Bruno Roustant, Aleksandr Danilin).
GH-31: Added QuickSort and used it in SortedIterationKTypeVTypeHashMap. (Bruno Roustant)
QuickSort can be used with custom element comparator and swapper.
GH-28: Added SortedIterationKTypeVTypeHashMap: a sorted-iteration order view over
another key-value map. (Bruno Roustant)
** Improvements
GH-26: Moved putIfAbsent to interface KTypeVTypeMap. (Dawid Weiss)
GH-25: Added addAll(KTypeContainer) on KTypeSet. (Erich Schubert, Dawid Weiss).
GH-27: Added identity short circuit to existing equals methods. (Callum Galbreath).
--: Java 11 is now required to compile HPPC. The resulting binary JAR is Java 1.8 compatible. (Dawid Weiss)
GH-24: Support indexRemove in KTypeVTypeHashMap,KTypeHashSet,KTypeWormSet (Bruno Roustant).
GH-20: KeysContainer of WormMap is not public (Haoyu Zhai, Bruno Roustant).
GH-13: Add automatic module name to the generated JAR's manifest ("com.carrotsearch.hppc")
HPPC-179: Update java template parser to support Java 8.
HPPC-186: A different strategy has been implemented for collision avalanche avoidance. This
results in removal of Scatter* maps and sets and their unification with their Hash*
counterparts.
This change should not affect any existing code unless it relied on static, specific
ordering of keys. A side effect of this change is that key/value enumerators will return
a different ordering of their container's values on each invocation. If your code relies
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps com.carrotsearch:hppc from 0.7.3 to 0.9.1.
Release notes
Sourced from com.carrotsearch:hppc's releases.
... (truncated)
Changelog
Sourced from com.carrotsearch:hppc's changelog.
... (truncated)
Commits
fdd0525
Prepare 0.9.1 release.72d0340
Apply spotless to headers.4b74f42
#26 Moved putIfAbsent to interface KTypeVTypeMap119f25f
Add github check action, update forbidden-apis.556d16a
Minor cleanups, plugin upgrades.634d35e
Update dependencies510dce6
GH-34: Optimize QuickSort inner loops.c34795b
Fix spotlessd882975
Add in-place QuickSort and use it in SortedIterationKTypeVTypeHashMap.415c176
Added SortedIterationKTypeVTypeHashMap: a sorted-iteration order view over an...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show