fastutil amplía el marco de colecciones de Java al proporcionar mapas, conjuntos, listas y colas de tipos específicos con una huella de memoria pequeña y un acceso e inserción rápidos; También proporciona matrices, conjuntos y listas grandes (64 bits), algoritmos de clasificación, clases de E/S prácticas y rápidas para archivos binarios y de texto, y funciones para mapear memoria de archivos grandes.
Desde la versión 8.5.5, fastutil se divide en dos frascos por conveniencia:
fastutil-core.jar
contiene estructuras de datos basadas en números enteros, largos, dobles y objetos;
fastutil.jar
es la distribución clásica que contiene todas las clases.
Tenga en cuenta que las clases principales están duplicadas en el jar estándar, por lo que si depende de ambas (por ejemplo, debido a dependencias transitivas), debe excluir el jar principal.
Las versiones divididas anteriores proporcionaban diferentes clases en diferentes contenedores, pero gestionar las dependencias con sensatez resultó imposible.
También puede crear un jar fastutil pequeño y personalizado (que puede colocar en su repositorio, repositorio maven local, etc.) utilizando el script de shell find-deps.sh
. Tiene requisitos previos sencillos, ya que solo se requiere la herramienta jdeps
(incluida con JDK 8). Se puede utilizar para identificar todas las clases fastutil que utiliza su proyecto y crear un jar minimizado que solo contenga las clases necesarias.
Primero, debe make sources
para obtener las fuentes Java reales. Después de eso, ant jar
generará un único archivo jar; ant javadoc
generará la documentación de la API; ant junit
ejecutará las pruebas unitarias.
Si desea obtener los tres archivos jar anteriores, debe ejecutar el script split.sh
y luego ant osgi-rest
.
Las fuentes Java se generan utilizando un preprocesador C. El script gencsource.sh
lee un archivo de controlador, es decir, una fuente Java que utiliza algunos símbolos definidos por el preprocesador y alguna compilación condicional, y produce una fuente C (falsa), que incluye el código del controlador y algunas definiciones que personalizan el entorno. .