昨晚我偶然发现了一个百灵鸟的multi_index,同时对着我需要通过3个不同的键值访问的集合,以及重新平衡数组语义。好吧,我在boost::multi_index
中得到了我的两个愿望之一(3个不同的键值)。
Java世界中是否存在类似的东西?
答案 0 :(得分:2)
我刚刚用Java完成了MultiIndexContainer:http://code.google.com/p/multiindexcontainer/wiki/MainPage。 我知道它并不完全等同于boost multi_index_container,但它可能足以满足您的要求。
答案 1 :(得分:2)
重新提出旧问题,但请查看CQEngine作为解决方案。
有关背景信息,请参阅相关问题How do you query object collections in Java (Criteria/SQL-like)?
答案 2 :(得分:1)
我认为简短的答案是否定的,没有明显的等价物。
boost多索引类非常模糊,在Java中不易翻译。有仿制药,但它们完全没有相同之处。 (How are Java generics different from C++ templates? Why can't I use int as a parameter?)。
所以没有模板化,多索引类会是什么样的?
我想你会有你的数据类,例如Person,包含像Map实现的索引成员。此时,您有一个选择:
我认为,在大多数情况下1)是最容易编写,最容易维护的,并且可能是性能最高的。 2)似乎过度工程化。
如果您有许多需要索引的数据结构,则另一个选项是将它们存储在数据库中。
答案 3 :(得分:-1)
我认为你可以在谷歌番石榴库中找到答案。可能 multimaps 可以解决您的需求。
https://code.google.com/p/guava-libraries/wiki/CollectionUtilitiesExplained
在这些主题中评论:
答案 4 :(得分:-2)
我不知道boost :: multi_index是什么意思,但根据你提出的其他问题,我想你可能在谈论multi key map