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

回到顶部