Java集合的多个索引-最基本的解决方案?
我正在寻找在Java集合上创建多个索引的最基本的解决方案。
所需功能:
- 删除值时,必须删除与该值关联的所有索引条目。
- 索引查找必须比线性搜索更快(至少与TreeMap一样快)。
附带条件:
- 不依赖大型(如Lucene)库。没有不常见或未经良好测试的库。没有数据库。
- 像Apache Commons Collections等之类的库就可以了。
- 如果它仅与JavaSE(6.0)一起工作,那就更好。
- 没有自我实现的解决方案(感谢给出答案的答案-出于完整性考虑,在这里很好,但是我已经有一个与杰伊的解决方案非常相似的解决方案) 每当几个人发现他们实现了同一件事时,应该成为一些公共图书馆的一部分。
当然,我可以编写一个自己管理多个Maps的类 (这并不难,但感觉就像是在重新发明轮子) 。因此,我想知道,是否可以不这样做-
同时仍然获得与使用单个索引的java.util.Map类似的简单用法。
谢谢克里斯
回答:
看起来好像我们什么都没有找到。我喜欢您的所有答案-自行开发的版本,指向类似于数据库的库的链接。
这就是我真正想要的:在(a)Apache Commons Collections或(b)Google Collections /
Guava中具有此功能。也许是一个很好的选择。
其他人还会错过这些库中的此功能吗?它们确实提供了诸如MultiMaps,MulitKeyMaps,BidiMaps之类的各种东西,…我觉得,它很适合这些库-
可以称为MultiIndexMap
。你怎么看?
回答:
每个索引基本上都是一个单独的索引Map
。您可以(可能应该)在一个为您管理搜索,索引编制,更新和删除的类后面抽象它。相当普遍地做到这一点并不难。但是,没有,尽管可以很容易地从Java
Collections类中构建,但没有标准的现成类。
以上是 Java集合的多个索引-最基本的解决方案? 的全部内容, 来源链接: utcz.com/qa/413263.html