fastutil extends the Java Collections Framework by providing type-specific sets, maps, lists and queues with a small memory footprint and fast access and insertion; it also includes a fast I/O API for binary and text files.
The classes implement their standard counterpart interface (e.g., Map for maps) and can be plugged into existing code. Moreover, they provide additional features (such as bidirectional iterators) that are not available in the standard classes.
Besides objects and primitive types, fastutil classes provide support for references, that is, objects that are compared using the equality operator rather than the equals() method.
The sources are generated using a C preprocessor, starting from a set of driver files. You can peek at the javadoc-generated documentation. In particular, the overview explains the design choices used in fastutil.
InstallYou just have to install the .jar file coming with the distribution. javadoc-generated documentation and sources are included. There are also Jpackage RPMs.
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 (also available at JPackage) to extract automatically the necessary classes.
History and Motivation
fastutil came up as a necessity during the development of UbiCrawler, as we needed to manage structures with dozens of millions of items very efficiently. The same reasons led to the development of the high-performance classes of MG4J (e.g., MutableString).
What's New in This Release: [ read full changelog ]
· In array-based priority queues changed() would not invalidate the cached index of the smallest element.