Simple library to create primitive collections. Using template files to generate them. Project for self teaching.
Go to file
Speiger 8689037ceb Documentation update 2022-04-17 20:21:48 +02:00
.github/workflows And hopefully the last javaDoc fixes 2022-04-08 00:24:37 +02:00
gradle/wrapper Moving to a more up to date system. 2022-04-07 16:00:58 +02:00
src Finishing touches for the 0.6.0 release. 2022-04-14 07:29:32 +02:00
.classpath Changes. 2021-09-28 04:43:04 +02:00
.gitattributes Removed the double foldering and started some seriouse work. 2020-11-11 21:33:59 +01:00
.gitignore Moving Credentials Away from this file because now i need it 2021-12-27 19:59:19 +01:00
.project Map Tests & BugFixes. 2021-04-22 23:02:04 +02:00
Changelog.md Finishing touches for the 0.6.0 release. 2022-04-14 07:29:32 +02:00
LICENSE Update LICENSE 2021-12-19 21:19:28 +01:00
README.md Documentation update 2022-04-17 20:21:48 +02:00
RuleSheet.md New Content patch getting big progress on base and progress on lists. 2020-11-16 02:55:33 +01:00
build.gradle Fixed Classification 2022-04-14 09:34:16 +02:00
features.md Documentation update 2022-04-17 20:21:48 +02:00
gradle.properties Added gradle now uses the java version it runs on. 2022-04-07 20:26:53 +02:00
gradlew Removed the double foldering and started some seriouse work. 2020-11-11 21:33:59 +01:00
gradlew.bat Removed the double foldering and started some seriouse work. 2020-11-11 21:33:59 +01:00
jitpack.yml Fixing Jitpack Publishing 2022-04-14 09:24:13 +02:00
settings.gradle Removed the double foldering and started some seriouse work. 2020-11-11 21:33:59 +01:00

README.md

build Latest Release

Primitive-Collections

This is a Simple Primitive Collections Library i started as a hobby Project.
It is based on Java's Collection Library and FastUtil.
But its focus is a different one.

Main Features:

  • ArrayLists / LinkedLists / CopyOnWriteLists
  • HashSets/Maps (Linked & HashControl)
  • TreeSets/Maps (RB & AVL)
  • EnumMaps
  • Immutable Maps/Lists/Sets
  • ConcurrentHashMaps
  • Priority Queues
  • Streams & Functional Queries
  • SplitIterators
  • Iterators
  • Pairs
  • Unary/Functions
  • Suppliers
  • Bi/Consumers
  • AsyncBuilders

Current Level of Stability

Since this is a relatively new Library, stability was not perfect and some areas are not perfect yet.
Thanks to ben-manes we now have Roughly 160k unit test covering Maps/Sets/Lists.
These tests cover Javas Collection API completely and ensuring a Stable implementation.
These freshly added tests allowed me to squash thousands of issues according to Googles Test Library (Guava-Tests).
These will be expanded on as time goes on.

Benchmarks

Benchmarks can be found here: Click Me

Special Features

Here you find a set of features added to Primitive Collections. These are designed to improve performance or to provide Quality of Life.

Notes about Versions

Any 0.x.0 version (Minor) can be reason for massive changes including API.
To ensure that problems can be dealt with even if it is breaking the current API.
Any breaking changes will be Documented (once 1.0 is released)

Also to save space every 0.0.x (Patch) that is 2 Minor Versions behind will be removed. So if 0.5.0 is released every 0.3.x patch will be deleted, except for the last patch for that minor version.

How to install

Using Gradle:

repositories {
    maven {
        url = "https://maven.speiger.com/repository/main"
    }
}
dependencies {
	implementation 'de.speiger:Primitive-Collections:0.6.0'
}

Using Jitpack Gradle

repositories {
    maven {
        url = "https://jitpack.io"
    }
}
dependencies {
	implementation 'com.github.Speiger:Primitive-Collections:0.6.0'
}

Direct:

Version Jar Sources Java Doc
0.6.0 Download Download Download
0.5.3 Download Download Download
0.5.2 Download Download Download
0.5.1 Download Download Download
0.5.0 Download Download Download
0.4.5 Download Download Download
0.4.4 Download Download Download
0.4.3 Download Download Download
0.4.2 Download Download Download
0.4.1 Download Download Download
0.4.0 Download Download Download
0.3.6 Download Download Download

Contributing

If you want to contribute.
This project is created using gradle and java and my Template Library only. Nothing extra.
If you setup gradle the library will be downloaded automatically.

Where is everything stored?

  • Variables and ClassNames are define here
  • Templates are stored here
  • Tests can be found here

Please if you want to contribute follow the Rule-Sheet. It keeps everything in line.

How to Build

The SourceCode can be generated via:
/gradlew.bat generateSource

to build the jar:
/gradlew.bat build
do not combine the commands because they can not be executed at the same time.

Current Down Sides (Random order)

  • Documentation is only present at the lowest level for most cases and needs a typo fixing.