繁体   English   中英

检查HashMap中是否存在String的一部分

[英]Check if part of a String exists in HashMap

我有一个60k键/值对的HashMap

我有100个字符串,在这100个字符串中有一个字符串存在于HashMap

我将不得不重复这个过程一千次。 是否有一种有效的方法来做到这一点?

比方说,哈希包含如下:

美国杂志,rev su arabia,comutational journal等。

而字符串如:

发表于rev su arabia

出版事件发生在

计算期刊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等产品(有关详细信息,请参阅此处 )。

你看,我们很可能在这里看到一个“现实世界”的生产问题。 因此,即使您找到了一种聪明的方法来构建自己的数据结构来支持您当前的需求,但很快就会有更多的“更多”需求。

因此,我认真建议澄清要解决的确切问题,然后确定最能解决问题的现有产品。 否则你将会像永远一样奋战。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM