es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe una estructura de datos de caché de Map en Java?

Necesito manejar un Mapa en caché en mi aplicación Java. Este mapa es una estructura en constante crecimiento y necesito algún método para eliminar objetos antiguos en el mapa cuando no se utilizan durante un tiempo.

¿Existe alguna estructura de mapa en Java que implemente esta lógica definiendo una vida útil máxima del objeto en el mapa o alguna biblioteca común que implemente este mapa?
Estoy utilizando Java8 y las bibliotecas Java-Commons.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, existen estructuras de mapas en Java que cumplen con este requisito. Una de estas estructuras es la interfaz “Cache” proporcionada por el Sistema de Caché de Java (JSR-107). Esta interfaz define métodos para almacenar datos en caché con políticas de expiración basadas en tiempo.

    Otra biblioteca comúnmente utilizada que implementa esta funcionalidad es la interfaz “Cache” de Guava. Esta admite un tamaño máximo y políticas de eliminación basadas en el tiempo, lo que te permite configurar la eliminación automática de entradas en función del tiempo transcurrido o de condiciones de tamaño.

    También puedes utilizar la clase “ConcurrentHashMap” de la biblioteca estándar de Java para implementar tu propio mapa con una estrategia de eliminación basada en el tiempo. Sin embargo, esto requiere más codificación manual y realizar un seguimiento de los tiempos de eliminación por ti mismo.

    En general, la elección de una estrategia de almacenamiento en caché dependerá de tu caso de uso específico y requisitos de caché. Pero dado tu caso de uso, utilizar la caché de Guava o la implementación de caché JSR-107 sería una mejor opción, ya que están bien diseñadas, probadas y proporcionan las políticas de eliminación deseadas.

Comments are closed.