索引地图是一种内存映射,类似于带有索引的数据库表。通过简单的Java 8 lambda表达式提供索引策略,可以按需添加二级索引以提供快速查找。它受到IndexedMap的启发,但更适合单线程使用。

多线程使用注意事项

如果以后需要多线程使用,它也可以作为向ScalaSTM的迁移路径(ScalaSTM提供了一个替代的Java友好的API)。尽管可以在多线程上下文中使用IndexedMap,但它没有内置的事务隔离功能。而且,由于在整个映射中使用ReadWriteLock以确保始终维护索引,因此效率较低。

预期用例

IndexedMap的预期用例是管理具有快速单线程事件处理器的应用程序状态,主要用于查询和更新。实际应用中,这通常意味着操作是短期的,或者长时间运行的操作可以与状态管理分离的工作负载。

依赖关系

IndexedMap除了Java 8之外,没有运行时依赖项。

用法示例