【问题标题】:Fastest way to store and search large number of data in Java在 Java 中存储和搜索大量数据的最快方法
【发布时间】:2014-03-03 21:40:44
【问题描述】:

问题的总体背景。

我有 3 个大型 XML 文件。在第一个 XML 文件中,大约有 8000 个我感兴趣的 IP 地址,我根据它们的属性在 3 个 HashMap 之间进行了拆分。 一个 HashMap 是<String, String>,而另外两个是<String, String[]>

IP 计算器以字符串形式提供子网内的 IP 列表,然后我在 3 个 HashMap 中搜索以查找匹配项。找到后,我将它们保存到另外 3 个 HashMap 中。

现在我需要在其他两个 XML 文件中搜索这些 IP 地址。然而 其他两个 XML 仅具有 IP 的字符串引用。

所以基本上我的问题是,进行字符串搜索的最快方法是什么?我可能会查看 100k 比较,这将非常缓慢。

有什么建议吗?

【问题讨论】:

  • 你考虑过使用数据库吗?
  • @JamesClark 这个问题特别说“IN JAVA”
  • @John Java 可以使用数据库。
  • @John - 嗯,你不认为 JDBC 是 Java 吗?
  • 数据库并不快,至少对于适合主内存的东西来说不是。

标签: java xml search hashmap


【解决方案1】:

将 xml 读入主内存,并在那里进行搜索。 如果只有字符串引用,则引入自己的整数引用。 并初始化一次。 这样你应该会非常快,比任何数据库都快。

【讨论】:

  • 我们已将 XML 读入内存,但不确定如何引入整数引用,因为 XML 格式错误,仅提取我们需要的信息已成为一个挑战。
  • 使用自己的类而不是 XML 导入器生成的类。在自己的类中添加一个字段“int refToTableX”并初始化该字段。
猜你喜欢
  • 1970-01-01
  • 2010-11-11
  • 2012-02-03
  • 2012-07-13
  • 2023-03-15
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
相关资源
最近更新 更多