在Java中使用哪个集合存储和搜索一百万条记录?

在Java中使用哪个集合存储和搜索一百万条记录?,java,collections,Java,Collections,我想知道在Java中使用哪个集合来存储和搜索数百万数据中的字符串/数据 假设您想要它作为字符串 假设您希望它用于对象,并搜索多个值 请注意,我正在寻找最佳性能,以快速获得搜索结果。我正在寻找可以做到这一点的Java集合。想知道可以使用的正确集合。输入是一个任意字符串,不必排序。事实上,如果您想在如此大的数据结构中搜索,java中的可用集合都不够,因为您需要将所有数据存储在内存中,这需要真正强大的计算机才能工作 然而,对于这个问题,现有的解决方案称为全文搜索 看看or(它在引擎盖下使用Apache

我想知道在Java中使用哪个集合来存储和搜索数百万数据中的字符串/数据

  • 假设您想要它作为字符串
  • 假设您希望它用于对象,并搜索多个值

  • 请注意,我正在寻找最佳性能,以快速获得搜索结果。我正在寻找可以做到这一点的Java集合。想知道可以使用的正确集合。输入是一个任意字符串,不必排序。

    事实上,如果您想在如此大的数据结构中搜索,java中的可用集合都不够,因为您需要将所有数据存储在内存中,这需要真正强大的计算机才能工作

    然而,对于这个问题,现有的解决方案称为全文搜索

    看看or(它在引擎盖下使用Apache Lucene)


    要获得更简单的解决方案,您还可以使用任何关系数据库,该数据库也可以做到这一点。

    搜索条件是什么?这将很可能决定哪种数据结构最好。“数百万数据”-数据有多大?它还适合你的记忆吗?你的问题太宽泛了,我投票决定结束它,但无法准确回答。你的字符串是随机字符集还是人类语言文字?“对象,并搜索多个值”-比如查找任意对象并搜索任意字段?字段是字符串、整数还是更多的任意对象?您是在寻找
    集合
    解决方案(因为您使用了标记),还是也在寻找数据库等外部存储解决方案?虽然这个答案通常很有用,但不清楚它是否解决了OP实际需要的任何问题(问题只是不清楚)。因此,目前尚不清楚它是否真的对老年退休金计划的具体问题有用。你应该避免发布不清楚问题的答案——你可能会因此而获得否决票。我们有2020年。一百万件物品不是一个令人印象深刻的数字。答案应该是,几乎每一个内置收藏都可以处理这个数字。