fastutil extends the Java™ Collections Framework by providing type-specific maps, sets, lists and queues.
Find a file
Sebastiano Vigna 9136e977e3 Updated docs
2021-03-29 09:14:59 +01:00
bnd Restructured generation and POMs 2021-03-21 22:43:13 +00:00
drv Unmodifiable wrappers now promote generic types as the JDK does 2021-03-18 10:14:35 +00:00
lib Removed old bnd 2021-03-21 23:44:13 +01:00
src Lexicographical comparator for pairs 2021-02-18 00:47:43 +00:00
test/it/unimi/dsi/fastutil Restructured generation and POMs 2021-03-21 22:43:13 +00:00
.gitignore Tweaking 2020-02-11 11:40:32 +01:00
.svnignore Tweaking 2006-03-22 23:40:11 +00:00
build.properties Fixed jar content 2021-03-28 15:30:10 +02:00
build.xml Fixed jar content 2021-03-28 15:30:10 +02:00
CHANGES Fixed jar content 2021-03-28 15:30:10 +02:00
fastutil-core.bnd New bind files 2021-03-12 15:21:04 +00:00
fastutil-extra.bnd Fixed jar content 2021-03-28 15:30:10 +02:00
fastutil-rest.bnd Fixed jar content 2021-03-28 15:30:10 +02:00
find-deps.sh Updated docs 2021-03-29 09:14:59 +01:00
gencsource.sh Unmodifiable wrappers now promote generic types as the JDK does 2021-03-18 10:14:35 +00:00
ivy.xml Tweaking 2015-01-13 15:04:25 +00:00
LICENSE-2.0 Moved to Apache License 2.0 2010-11-18 19:27:26 +00:00
makefile Fixed 2021-03-22 01:00:42 +01:00
pom-core-model.xml Updated docs 2021-03-29 08:18:35 +01:00
pom-extra-model.xml Updated docs 2021-03-29 08:18:35 +01:00
pom-rest-model.xml Updated docs 2021-03-29 08:18:35 +01:00
README.md Updated docs 2021-03-29 09:14:59 +01:00
REVISION.md Major code cleanup, phase four 2017-03-16 00:42:36 +01:00
split.sh Fixed staging 2021-03-22 00:18:18 +01:00
test.sh Removed test 2021-03-27 14:44:45 +01:00
TODO Merge remote-tracking branch 'mainline/master' into MainMethodTestIntegration 2020-12-15 17:28:56 -06:00

Welcome to fastutil

fastutil is a collection of type-specific Java classes that extend the Java Collections Framework by providing several containers, such as maps, sets, lists and prority queues, implementing the interfaces of the java.util package; it also provides big (64-bit) arrays, sets, lists, and fast, practical I/O classes for binary and text files.

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.

Since version 8.5.4, fastutil is split into three jars for convenience:

  • fastutil-core.jar contains data structures based on integers, longs, doubles, and objects;

  • fastutil-extra.jar adds data structures based on references, bytes, and characters;

  • fastutil.jar adds the remaining data structures: booleans, shorts, and floats.

Each jar depends on the previous one.

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

You have to make sources to get the actual Java sources; 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.