fastutil расширяет Java Collections Framework, предоставляя карты, наборы, списки и очереди для конкретного типа с небольшим объемом памяти и быстрым доступом и вставкой; он также предоставляет большие (64-битные) массивы, наборы и списки, алгоритмы сортировки, быстрые и практичные классы ввода-вывода для двоичных и текстовых файлов, а также средства для отображения больших файлов в памяти.
Начиная с версии 8.5.5, fastutil для удобства разделен на два jar:
fastutil-core.jar
содержит структуры данных, основанные на целых, длинных, двойных значениях и объектах;
fastutil.jar
— классический дистрибутив, содержащий все классы.
Обратите внимание, что основные классы дублируются в стандартном jar-файле, поэтому, если вы зависите от обоих (например, из-за транзитивных зависимостей), вам следует исключить основной jar-файл.
Предыдущие разделенные версии предоставляли разные классы в разных jar-файлах, но разумное управление зависимостями оказалось невозможным.
Вы также можете создать небольшой индивидуальный jar-файл fastutil (который можно поместить в свое репозиторий, локальный репозиторий Maven и т. д.), используя сценарий оболочки find-deps.sh
. Для него требуются умеренные предварительные требования, так как требуется только инструмент jdeps
(входит в состав JDK 8). Его можно использовать для идентификации всех классов fastutil, используемых в вашем проекте, и создания свернутого jar-файла, содержащего только необходимые классы.
Во-первых, вам нужно make sources
, чтобы получить настоящие исходные коды Java. После этого ant jar
сгенерирует один jar-файл; ant javadoc
создаст документацию по API; ant junit
запустит модульные тесты.
Если вы хотите получить три указанных выше jar-файла, вам нужно запустить сценарий split.sh
, а затем ant osgi-rest
.
Исходники Java генерируются с использованием препроцессора C. Сценарий gencsource.sh
считывает файл драйвера, то есть исходный код Java, который использует некоторые символы, определенные препроцессором, и некоторую условную компиляцию, и создает (поддельный) исходный код C, который включает в себя код драйвера и некоторые определения, настраивающие среду. .