+-

我有一个60k键/值对的HashMap.
我有100个字符串,在这100个字符串中,有一个包含在HashMap中的子字符串.
我将不得不重复此过程数千次.是否有一种有效的方法来做到这一点?
假设哈希包含:
journal of america, rev su arabia, comutational journal, etc..
和这样的字符串:
published in rev su arabia
the publication event happened in
computationl journal 230:34
第一个和第三个字符串在哈希中包含键/值,我需要找出它们.
代码(效率不高)
private String contains(String candidateLine)
{
Iterator<String> it = journalName.iterator();
while (it.hasNext())
{
String journalName = it.next();
if (candidateLine.contains(journalName))
return journalName;
}
return null;
}
请提出建议.
最佳答案
根据您的要求,唯一的答案是:错误的设计点.您基本上是在问如何有效地支持“全文”搜索功能.对于这个问题,答案是:不要自己做.
含义:在这里忘记重新发明轮子.而是选择现有的解决方案,例如Lucene(库)或产品,例如Solr或ElasticSearch(有关更多信息,请参见here).
您会看到,很可能我们在这里正在研究“现实世界”的生产问题.因此,即使您找到了一种巧妙的方式来构建自己的数据结构来支持当前的需求,也很可能迟早会出现“更多”的需求.
因此,我强烈建议您明确要解决的问题,然后确定最能解决问题的现有产品.否则,您将永远战胜艰苦的战斗.
点击查看更多相关文章
转载注明原文:java-检查HashMap中是否存在字符串的一部分 - 乐贴网