fastutil erweitert das Java Collections Framework durch die Bereitstellung typspezifischer Karten, Mengen, Listen und Warteschlangen mit geringem Speicherbedarf und schnellem Zugriff und Einfügen; Es bietet außerdem große (64-Bit-)Arrays, Mengen und Listen, Sortieralgorithmen, schnelle, praktische I/O-Klassen für Binär- und Textdateien sowie Funktionen für die Speicherzuordnung großer Dateien.
Seit Version 8.5.5 ist fastutil der Einfachheit halber in zwei JARs aufgeteilt:
fastutil-core.jar
enthält Datenstrukturen basierend auf Ganzzahlen, Long-Werten, Doubles und Objekten;
fastutil.jar
ist die klassische Distribution, die alle Klassen enthält.
Beachten Sie, dass Kernklassen im Standard-JAR dupliziert werden. Wenn Sie also von beiden abhängig sind (z. B. aufgrund transitiver Abhängigkeiten), sollten Sie das Kern-JAR ausschließen.
Frühere Split-Versionen stellten unterschiedliche Klassen in unterschiedlichen JAR-Dateien bereit, die sinnvolle Verwaltung von Abhängigkeiten erwies sich jedoch als unmöglich.
Sie können auch ein kleines, angepasstes Fastutil-JAR erstellen (das Sie in Ihr Repo, lokales Maven-Repo usw. einfügen können), indem Sie das Shell-Skript find-deps.sh
verwenden. Die Voraussetzungen sind gering, da nur das jdeps
-Tool erforderlich ist (im Lieferumfang von JDK 8 enthalten). Es kann verwendet werden, um alle von Ihrem Projekt verwendeten Fastutil-Klassen zu identifizieren und ein minimiertes JAR zu erstellen, das nur die erforderlichen Klassen enthält.
Zuerst müssen Sie make sources
um die tatsächlichen Java-Quellen zu erhalten. Danach generiert ant jar
eine einzelne Jar-Datei. ant javadoc
generiert die API-Dokumentation; ant junit
führt die Unit-Tests durch.
Wenn Sie die drei oben genannten Jars erhalten möchten, müssen Sie das Skript split.sh
und dann ant osgi-rest
ausführen.
Die Java-Quellen werden mit einem C-Präprozessor generiert. Das Skript gencsource.sh
liest eine Treiberdatei ein, also eine Java-Quelle, die einige präprozessordefinierte Symbole und eine bedingte Kompilierung verwendet, und erzeugt eine (gefälschte) C-Quelle, die den Treibercode und einige Definitionen enthält, die die Umgebung anpassen .