Description
fastutil provides a huge collection of specialized classes generated
starting from a parameterized version; the classes are much more compact
and much faster than the general ones. Please read the package
documentation for more information.
The compiled code is contained in the jar file, and should be installed
where you keep Java extensions. Note that the jar file is huge, due to the
large number of classes: if you plan to ship your own jar with some
fastutil classes included, you should look at AutoJar or similar tools to
extract automatically the necessary classes.
You have to "make sources" to get the actual Java sources; finally, "ant
jar" and "ant javadoc" will generate the jar file and the API
documentation.
The Java sources are generated using a C preprocessor. The gencsource.sh
script reads in a driver file, that is, a Java source that uses some
preprocessor-defined symbols and some conditional compilation, and
produces a (fake) C source, which includes the driver code and some
definitions that customize the environment.
fastutil alternatives and similar libraries
Based on the "High Performance" category.
Alternatively, view fastutil alternatives based on common mentions on social networks and blogs.
-
Eclipse Collections
Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API. -
GS Collections
GS Collections has been migrated to the Eclipse Foundation, re-branded as Eclipse Collections. https://www.eclipse.org/collections/ -
Primitive-Collections
A Primitive Collection library that reduces memory usage and improves performance and provides a lot of QoL
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of fastutil or a related project?
README
Welcome to fastutil
fastutil extends the Java Collections Framework by providing type-specific maps, sets, lists, and queues with a small memory footprint and fast access and insertion; it provides also big (64-bit) arrays, sets, and lists, sorting algorithms, fast, practical I/O classes for binary and text files, and facilities for memory mapping large files.
Since version 8.5.5, fastutil is split into two jars for convenience:
fastutil-core.jar
contains data structures based on integers, longs, doubles, and objects;fastutil.jar
is the classic distribution, containing all classes.
Note that core classes are duplicated in the standard jar, so if you are depending on both (for example, because of transitive dependencies) you should exclude the core jar.
Previous split versions would provide different classes in different jars, but managing sensibly dependencies turned out to be impossible.
You can also create a small, customized fastutil jar (which you can put in
your repo, local maven repo, etc.) using the find-deps.sh
shell script.
It has mild prerequisites, as only the jdeps
tool is required (bundled
with JDK 8). It can be used to identify all fastutil classes your project
uses and build a minimized jar only containing the necessary classes.
Building
First, you have to make sources
to get the actual Java sources.
After that, ant jar
will generate a single jar file; ant javadoc
will
generate the API documentation; ant junit
will run the unit tests.
If you want to obtain the three jars above, you have to run the script
split.sh
, and then ant osgi-rest
.
The Java sources are generated using a C preprocessor. The gencsource.sh
script reads in a driver file, that is, a Java source that uses some
preprocessor-defined symbols and some conditional compilation, and produces a
(fake) C source, which includes the driver code and some definitions that
customize the environment.