Skip to content

Latest commit

 

History

History
46 lines (31 loc) · 2.06 KB

README.md

File metadata and controls

46 lines (31 loc) · 2.06 KB

Implementation of Elemental interfaces

This project provides complete base implementations of the Elemental interfaces.

Key Notes

Provided direct Container and Collection implementations, such as HashContainer and HashCollection, TreeContainer and TreeCollection as NavigableContainer and handling duplicate elements effectively.

Mutable interfaces are implemented by wrapping their counterparts from the Java Development Kit (JDK) - WrapSet, WrapSortedSet, WrapNavigableSet, WrapQueue, WrapDeque, WrapBlockingQueue, WrapBlockingDeque, WrapList, WrapMap, WrapSortedMap, WrapNavigableMap, WrapConcurrentMap, WrapConcurrentNavigableMap, as well as the direct Association immutable implementations - WrapAssociation, WrapSortedAssociation, WrapNavigableAssociation. They all utilize the power of the existing Java Collection Framework.

Notably, the wrapping implementation of the Map interface (WrapMap) exhibits such a behaviour in its values() method when it returns instances of Collection, which can be equal to those from another Maps if they genuinely contain the same values in the same quantity.

The structural implementations of the Tuple* interfaces are present as well, utilizing arrays internally to efficiently store values.

Getting Started

Include Elementals in your project by adding the dependency.

Maven configuration

Artifacts can be found on Maven Central after publication.

<dependency>
    <groupId>org.moodminds.elemental</groupId>
    <artifactId>elemental-elementals</artifactId>
    <version>${version}</version>
</dependency>

Building from Source

You may need to build from source to use Elementals (until it is in Maven Central) with Maven and JDK 1.8 at least.

License

This project is going to be released under version 2.0 of the Apache License.