Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java存储和搜索大量数据的最快方法_Java_Xml_Search_Hashmap - Fatal编程技术网

用Java存储和搜索大量数据的最快方法

用Java存储和搜索大量数据的最快方法,java,xml,search,hashmap,Java,Xml,Search,Hashmap,问题的总体背景 我有3个大的XML文件。在第一个XML文件中,我感兴趣的大约有8000个IP地址,我根据它们的属性将它们分为3个HashMap。 一个HashMap是,而另外两个是 IP计算器将子网中的IP列表作为字符串提供给我,然后我通过3个哈希映射进行搜索以查找匹配项。找到后,我将它们保存到另外3个HashMaps中 现在,我需要在另外两个XML文件中搜索这些IP地址。然而 另外两个XML只有IP的字符串引用 所以基本上我的问题是,做字符串搜索的最快方法是什么?我可能在看10万个比较,这将是

问题的总体背景

我有3个大的XML文件。在第一个XML文件中,我感兴趣的大约有8000个IP地址,我根据它们的属性将它们分为3个HashMap。 一个HashMap是
,而另外两个是

IP计算器将子网中的IP列表作为字符串提供给我,然后我通过3个哈希映射进行搜索以查找匹配项。找到后,我将它们保存到另外3个HashMaps中

现在,我需要在另外两个XML文件中搜索这些IP地址。然而 另外两个XML只有IP的字符串引用

所以基本上我的问题是,做字符串搜索的最快方法是什么?我可能在看10万个比较,这将是非常缓慢的


有什么建议吗?

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

你想过使用数据库吗?@JamesClark问题明确地说“在JAVA中”@John JAVA可以使用数据库。@John-Um,你不认为JDBC是JAVA吗?数据库不快,至少不适合主内存。我们已经将XML读入内存,不知道如何引入整数引用,因为XML的格式很糟糕,仅仅提取我们需要的信息就有点困难。请使用自己的类,而不是XML导入器生成的类。在自己的类中添加一个字段“int refToTableX”并初始化该字段。