Releases: cicirello/core
Releases · cicirello/core
Release list
Core v3.1.0
[3.1.0] - 2026-07-29
Added
- Method pollThenOffer added to the IntPriorityQueue and IntPriorityQueueDouble interfaces:
- A composite of a poll followed by an offer,
- Default implementations in the interfaces with the obvious implementation,
- Implementations in both the IntBinaryHeap and IntBinaryHeapDouble classes more efficient than the default implementation provided in the interfaces.
- Method toArray() added to the IntPriorityQueue and IntPriorityQueueDouble interfaces:
- Implementations provided in all of the relevant classes.
- Note: We're not considering this a breaking change despite adding a method to an interface without providing a default implementation, because there is no obvious use-case where someone would be using this interface from the library without using one of the implementations from the library as well.
Fixed
- Fixed examples in javadocs of IntBinaryHeap, IntBinaryHeapDouble, IntFibonacciHeap, and IntFibonacciHeapDouble.
- Fixed name of type parameter in DisjointSetForest class for naming conventions.
- Refactored equals methods of: IntegerArray, IntegerList, DoubleArray, DoubleList, DisjointIntegerSetForest, SimpleFibonacciHeap, SimpleFibonacciHeapDouble, SimpleBinaryHeap, SimpleBinaryHeapDouble, FibonacciHeap, FibonacciHeapDouble, BinaryHeap, BinaryHeapDouble
- Refactored hashCode methods of: IntegerList, DoubleList
- Refactored contains and remove methods of: SimpleFibonacciHeap, SimpleFibonacciHeapDouble, SimpleBinaryHeap, SimpleBinaryHeapDouble, FibonacciHeap, FibonacciHeapDouble, BinaryHeap, BinaryHeapDouble
- Refactored removeAll and retainAll methods of: SimpleBinaryHeap, SimpleBinaryHeapDouble, BinaryHeap, BinaryHeapDouble
- Refactored containsAll methods of: SimpleFibonacciHeap, SimpleFibonacciHeapDouble, SimpleBinaryHeap, SimpleBinaryHeapDouble, FibonacciHeap, FibonacciHeapDouble
- Refactored various methods to eliminate unchecked casts
Core v3.0.0
[3.0.0] - 2026-06-25
BREAKING CHANGES
Added
- 4-element sorting network for arrays of doubles.
- 4-element sorting network for arrays of ints.
Changed
- Replaced PriorityQueueNode.Integer with a Java record class IntegerPriorityQueueNode for immutability and to eliminate the name clash with the Java API class Integer (BREAKING CHANGE).
- Replaced PriorityQueueNode.Double with a Java record class DoublePriorityQueueNode for immutability and to eliminate the name clash with the Java API class Double (BREAKING CHANGE).
Removed
- Removed PriorityQueueNode class and its nested classes (BREAKING CHANGE).
Fixed
- Refactored Prioritizer and implementations, an internal interface and classes related to priority queue implementations.
- Refactored IntBinaryHeap based on RefactorFirst report.
- Refactored IntBinaryHeapDouble based on RefactorFirst report.
- Refactored IntFibonacciHeap based on RefactorFirst report.
- Refactored IntFibonacciHeapDouble based on RefactorFirst report.
- Refactored SimpleFibonacciHeap based on RefactorFirst report.
- Refactored SimpleFibonacciHeapDouble based on RefactorFirst report.
Other
- Minimum supported Java 25 (BREAKING CHANGE).
Core v2.7.1
[2.7.1] - 2025-05-15
Other
- Migrated deployment from the old OSSRH to the new Central.
Core v2.7.0
[2.7.0] - 2024-05-13
Added
- SimpleSwapper: utility class for swapping elements within an array
- ValidatedSwapper: utility class for swapping elements within an array, which verifies indexes are different before attempting swap
Core v2.6.0
[2.6.0] - 2024-04-06
Added
- SortingNetwork class, with the following:
- compareExchange methods for arrays of doubles and ints
- 3-element sorting networks
Removed
- Removed support for importing from JitPack.
CI/CD
- Integrated SpotBugs static analysis into build process.
- Integrated Find Security Bugs static analysis into build process.
- Removed JitPack related configuration and steps of workflows.
Core v2.5.0
[2.5.0] - 2023-04-21
Added
- DoubleArray
- IntegerArray
Core v2.4.6
[2.4.6] - 2023-02-28
Changed
- Minor code improvements to add and remove methods of IntegerList and DoubleList.
Core v2.4.5
[2.4.5] - 2023-02-26
Changed
- Optimized buffer reallocation and other related internal code in: IntegerList, DoubleList, BinaryHeap, BinaryHeapDouble, SimpleBinaryHeap, SimpleBinaryHeapDouble.
Core v2.4.4
[2.4.4] - 2023-01-10
Changed
- Refactored all Fibonacci heap classes.
Core v2.4.3
[2.4.3] - 2022-11-13
Changed
- Refactored all priority queue classes to optimize and make other code improvements to priority-order determination.