-
Notifications
You must be signed in to change notification settings - Fork 8
Releases
The following summarizes the changes in this release:
- Updated all dependencies to the latest stable versions.
- No changes to the API or functionality of the package.
The following summarizes the changes in this release:
- Updated the dependency on java-core-interfaces to 3.8.
- Updated the dependency on java-smart-objects to 3.14.
- Removed collection interfaces since they were redundant with the abstract classes and caused confusion.
- Refactored
Bag
andDictionary
classes to extend an abstractAssociativeCollection
class to eliminate implementation inheritance. - Significant refactoring based on changes to the
java-core-interfaces
.
The following summarizes the changes in this release:
- Updated parent pom dependencies to version 3.17.
- Updated to depend on version 3.12 of
java-smart-objects
to fix censorship bug.
The following summarizes the changes in this release:
- Updated the pom.xml file to depend on the latest (3.7) version of the
java-smart-objects
project. - Simplified the verbose method and (static) function names based on feedback from users. The method names tend to be verb-noun phrases and the function names are nouns.
The following summarizes the changes in this release:
- Updated pom.xml files to reference the latest (2.12) version of the parent pom files.
- Updated the pom.xml file to depend on the latest (3.6) version of the
java-smart-objects
project. - Added a lot of comments to the private methods for
RandomizedTree
. - Added two missing recursive calls in the
RandomizedTree.pushNodeDown()
method. - Added some optimizations to the
RandomizedTree
implementation. - Added unit test to make sure that craterdog primitives are being serialized correctly by the
SmartObjectMapper
class.
The following summarizes the changes in this release:
- Fixed a bug in the
Collection.compareTo
method that was allowing two different collections of the same length to compare as the same. - Changed the format of the output of the
Collection.toString
method to be JSON using the Jackson framework. - The
pom.xml
file was updated to use the latest (3.9) release of the parent POMs. This updates all inherited dependencies to their latest (or nearly latest) versions.
The interfaces and abstract classes were refactored to provide more consistency between the closed collections like Stack
and Queue
, and the rest of the open collections. The following summarizes the changes in this release:
- The
Collection
abstract class was refactored to include two new subclasses:-
ClosedCollection
which is the new superclass of theStack
andQueue
classes and provides some additional methods that can be used to access (but not modify) the structure of their instances. -
OpenCollection
which is the new superclass of theOrderedCollection
andSortableCollection
classes and provides the methods that can be used to modify the structure of their instances.
-
- A
shuffleElements()
method was added to theSortableCollection
abstract class that allows the order of its elements to be randomly shuffled. - The
UniversalHashFunction
class was moved to thejava-general-utilities
project. - The private
MergeSorter
and a newRandomSorter
classes were moved to thecraterdog.collections.primitives
package. - The
Collection
abstract class now supports thejava.lang.Comparable
interface.
The craterdog.collections.List
and craterdog.collections.Map
classes used as their underlying implementation the java.util.ArrayList
, java.util.LinkedList
, and java.util.HashMap
classes. Performance testing showed that the java.util.LinkedList
class almost never outperforms the java.util.ArrayList
class and that the performance of the java.util.ArrayList
and java.util.HashMap
could be improved by around 5% if rewritten. The following primitive collection classes were added to the existing RandomizedTree
primitive collection in the craterdog.collections.primitive
package:
-
DynamicArray
(implementsjava.util.List
) -
HashTable
(implementsjava.util.Map
) -
Link
(implements a simple linked list)
The implementations have been optimized for performance and are used to implement the higher level Crater Dog collections. We will continue to optimize them over time to get even better performance out of them which should pass on the performance improvements to the higher level collections.
This is the first stable release of the java-collections-framework
project.
Copyright © 2009 - 2022 Crater Dog Technologies™. All rights reserved.